WebForm

article/2025/9/22 0:39:42

什么是ASP.NET

ASP.NET指的是动态服务器页面(Active Server Pages),运行在IIS(Internet Information Service)上,文件类似于HTML,后缀为.aspx.

Classic ASP的局限性:

代码块必须放置在需要进行输出的位置

<html>
<body style="background-color:#e5eecc; text-align:center;">
<h2>Hello W3School!</h2>
<p>代码块:<%Response.Write(now())%></p>
</body>
</html>

通过 Classic ASP,我们是无法将可执行代码与 HTML 本身进行分离的。这使得页面难以阅读,也难以维护

ASP.NET-服务器控件

有三种类型的服务器控件:

  • HTML 服务器控件 - 传统的 HTML 标签
  • Web 服务器控件 - 新的 ASP.NET 标签
  • Validation 服务器控件 - 用于输入验证

ASP.NET-HTML服务器控件

  • 原本的HTML 元素添加 runat=“server” 属性。该属性指示,此元素是一个服务器控件。同时要添加 id 属性来标识该服务器控件。该 id 引用可用于操作运行时的服务器控件。

  • 所有 HTML 服务器控件必须位于带有 runat=“server” 属性的 标签内。

  • 事件处理程序(event handler)是一种针对给定事件执行代码的子例程。

    <script runat="server">
    Sub Page_Load
    link1.HRef="http://www.w3school.com.cn"
    End Sub
    </script><html>
    <body><form runat="server">此处的可执行代码已被移到html外:<a id="link1" runat="server">Visit W3School!</a>
    </form></body>
    </html>
    

ASP.NET - Web 服务器控件

似 HTML 服务器控件,Web 服务器控件也在服务器上创建,它们同样需要 runat=“server” 属性以使其生效。不过,Web 服务器控件没有必要映射任何已存在的 HTML 元素,它们代表更复杂的元素。

语法:<asp:control_name id="some_id" runat="server" />
例子:<form runat="server"><asp:Button id="button1" Text="Click me!" runat="server" OnClick="submit"/></form>

ASP.NET - Validation 服务器控件

Validation 服务器控件用于验证用户输入。如果用户输入没有通过验证,将向用户显示一条错误消息。

<html>
<body><form runat="server"><p>Enter a number from 1 to 100:<asp:TextBox ID="tbox1" runat="server" /><br /><br /><asp:Button Text="Submit" runat="server" /></p><p><asp:RangeValidatorControlToValidate="tbox1"MinimumValue="1"MaximumValue="100"Type="Integer"Text="The value must be from 1 to 100!"runat="server" /></p></form>
</body>
</html>

在这里插入图片描述

ASP.NET-事件

事件句柄(event handler)是一种针对给定事件来执行代码的子例程。

Page_Load事件

Page_Load 事件是众多 ASP.NET 可理解的事件之一。Page_Load 事件会在页面加载时被触发,然后 ASP.NET 会自动调用子例程 Page_Load,并执行其中的代码:

<script runat="server">
Sub Page_Load
lbl1.Text="The date and time is " & now()
End Sub
</script><html>
<body>
<form runat="server">
<h3><asp:label id="lbl1" runat="server" /></h3>
</form>
</body>
</html>

在这里插入图片描述

Page.IsPostBack 属性

Page_Load 子例程会在页面每次加载时运行。如果您仅希望在页面第一次加载时执行 Page_Load 子例程中的代码,您可以使用 Page.IsPostBack 属性。如果 Page.IsPostBack 属性为 false,则页面第一次被载入,如果为 true,则页面传回服务器

<script runat="server">
Sub Page_Load
if Not Page.IsPostBack thenlbl1.Text="The date and time is " & now()
end if
End SubSub Submit(s As Object, e As EventArgs)
lbl2.Text="Hello World!"
End Sub
</script><html>
<body>
<form runat="server">
<h3><asp:label id="lbl1" runat="server" /></h3>
<h3><asp:label id="lbl2" runat="server" /></h3>
<asp:button text="Submit" onclick="submit" runat="server" />
</form>
</body>
</html>

ASP.NET Web窗体

ASP.NET Web表单

所有服务器控件必须出现在 标签内,同时 标签必须包含 runat=“server” 属性。runat=“server” 属性指示该表单必须在服务器上进行处理。一个 .aspx 仅能包含一个 控件!

表单总是向自身页面进行提交。如果您规定了一个 action 属性,它会被忽略。如果您省略了 method 属性,它将被默认地设置为 method=“post”。同时,如果您没有规定 name 和 id 属性,它们则由 ASP.NET 自动分配。

如果您查看一个 .aspx 页面的源代码,而其中包含的表单不带有 name, method, action 或 id 属性,那么您将看到 ASP.NET 已经把这些属性添加到该表单。类似这样:

<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">...some code</form>

ASP.NET-维持ViewState

  • classic ASP: 表单被提交时,所有的表单值都会被清空。
  • **ASP.NET:**表单被提交时,表单会随所有表单值一同重新出现。

维持 ViewState 是 ASP.NET Web 表单的默认设置。如果您不希望维持 ViewState,请在 .aspx 页面的顶部包含指令: <%@ Page EnableViewState=“false” %>,或为任意控件添加属性:EnableViewState=“false”。

ASP.NET-TextBox控件

TextBox 控件用于创建用户可输入文本的文本框。

属性

属性描述.NET
AutoCompleteType规定 TextBox 控件的 AutoComplete 行为。2.0
AutoPostBack布尔值,规定当内容改变时,是否回传到服务器。默认是 false。1.0
CausesValidation规定当 Postback 发生时,是否验证页面。2.0
Columnstextbox 的宽度。1.0
MaxLength在 textbox 中所允许的最大字符数。1.0
ReadOnly规定能否改变文本框中的文本。1.0
Rowstextbox 的高度(仅在 TextMode=“Multiline” 时使用)。1.0
runat规定该控件是否是服务器控件。必须设置为 “server”。
TagKey
Texttextbox 的内容。1.0
TextMode规定 TextBox 的行为模式(单行、多行或密码)。1.0
ValidationGroup当 Postback 发生时,被验证的控件组。
Wrap布尔值,指示 textbox 的内容是否换行。1.0
OnTextChanged当 textbox 中的文本被更改时,被执行的函数的名称。

ASP.NET-Button控件

Button 控件用于显示一个按钮。

属性

属性描述.NET
CausesValidation规定当 Button 被点击时是否验证页面。1.0
CommandArgument有关要执行的命令的附加信息。1.0
CommandName与 Command 相关的命令。1.0
OnClientClick当按钮被点击时被执行的函数的名称。2.0
PostBackUrl当 Button 控件被点击时从当前页面传送数据的目标页面 URL。2.0
runat规定该控件是服务器控件。必须设置为 “server”。1.0
Text按钮上的文本。1.0
UseSubmitBehavior一个值 ,该值指示 Button 控件使用浏览器的提交机制,还是使用 ASP.NET 的 postback 机制。2.0
ValidationGroup当 Button 控件回传服务器时,该 Button 所属的哪个控件组引发了验证。2.0

ASP.NET-数据绑定

我们可以使用数据绑定(Data Binding)来完成带有可选项目的列表,这些可选项目来自某个导入的数据源,比如数据库、XML 文件或脚本。

下面的控件是支持数据绑定的列表控件:

  • asp:RadioButtonList
  • asp:CheckBoxList
  • asp:DropDownList
  • asp:Listbox

ASP NET - ArrayList 对象

ArrayList 对象是包含单一数据值的项目的集合。

把数据绑定到 ArrayList

ArrayList 对象可向下面这些控件自动地生成文本和值:

  • asp:RadioButtonList
  • asp:CheckBoxList
  • asp:DropDownList
  • asp:Listbox

如需把数据绑定到一个 RadioButtonList 控件,首先请在一个 .aspx 页面中创建 RadioButtonList 控件(请注意,没有任何 asp:ListItem 元素):

<form runat="server"><asp:RadioButtonList id="rb" runat="server" />
</form>

然后添加构建列表的脚本,并把列表中的值绑定到该 RadioButtonList 控件:

<script runat="server">Sub Page_Loadif Not Page.IsPostBack then  dim mycountries=New ArrayList  mycountries.Add("China")  mycountries.Add("Sweden")  mycountries.Add("France")  mycountries.Add("Italy")  mycountries.TrimToSize()  mycountries.Sort()  rb.DataSource=mycountries  rb.DataBind()end ifend sub</script>

RadioButtonList 控件的 DataSource 属性被设置为该 ArrayList,它定义了这个 RadioButtonList 控件的数据源。RadioButtonList 控件的 DataBind() 方法把 RadioButtonList 控件与数据源绑定在一起。

**注释:**数据值作为控件的 Text 和 Value 属性来使用。如需添加不同于 Text 的 Value,既可以使用 Hashtable 对象,也可以使用 SortedList 对象。

ASP.NET - Hashtable 对象

Hashtable 对象包含用键/值对表示的项目。

把数据绑定到Hashtable

Hashtable 对象可为下面这些控件自动地生成文本和值:

  • asp:RadioButtonList
  • asp:CheckBoxList
  • asp:DropDownList
  • asp:Listbox

如需把数据绑定到某个 RadioButtonList 控件,首先请在一个 .aspx 页面中创建 RadioButtonList 控件(没有任何 asp:ListItem 元素),然后添加构建列表的脚本:

<script runat="server">sub Page_Loadif Not Page.IsPostBack then  dim mycountries=New Hashtable  mycountries.Add("C","China")  mycountries.Add("S","Sweden")  mycountries.Add("F","France")  mycountries.Add("I","Italy")  rb.DataSource=mycountries  rb.DataValueField="Key"  rb.DataTextField="Value"  rb.DataBind()end ifend sub</script><html><body><form runat="server">	<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" /></form></body></html>

如需添加子例程,则添加onSelectedIndexChanged属性

<asp:RadioButtonList id="rb" runat="server"AutoPostBack="True" onSelectedIndexChanged="displayMessage" />

ASP.NET - SortedList 对象

SortedList 对象兼有 ArrayList 和 Hashtable 对象的特性。

SortedList 对象包含用键/值对表示的项目。SortedList 对象可按照字符顺序或数字顺序自动地对项目进行排序。

通过 Add() 方法向 SortedList 添加项目。SortedList 可通过 TrimToSize() 方法调整为最终尺寸。

ASP .NET - XML 文件

我们可以把 XML 文件绑定到列表控件。

XML文件:

<?xml version="1.0" encoding="ISO-8859-1"?><countries>    <country>      <text>China</text>      <value>C</value>    </country>    <country>      <text>Sweden</text>      <value>S</value>    </country></countries>

把 DataSet 绑定到 List 控件

首先,导入 “System.Data” 命名空间。我们需要该命名空间与 DataSet 对象一起工作。把下面这条指令包含在 .aspx 页面的顶部:

<%@ Import Namespace="System.Data" %>

接下来,为这个 XML 文件创建一个 DataSet,并在页面首先加载时把这个 XML 文件载入该 DataSet:

<script runat="server">sub Page_Loadif Not Page.IsPostBack then  dim mycountries=New DataSet  mycountries.ReadXml(MapPath("countries.xml"))  rb.DataSource=mycountries  rb.DataValueField="value"  rb.DataTextField="text"  rb.DataBind()end ifend sub

ASP.NET-Repeater控件

Repeater 控件用于显示重复的项目列表,这些项目被限制在该控件。

Repeater 控件用于显示重复的项目列表,这些项目被限制在该控件。Repeater 控件可被绑定到数据库表、XML 文件或者其他项目列表。

Repeater 控件包含三个元素。 元素中的内容在输出中仅出现一次,而 元素的内容会对应 DataSet 中的 “record” 重复出现,最后, 的内容在输出中仅出现一次:

<form runat="server">    <asp:Repeater id="cdcatalog" runat="server">        <table border="1" width="100%">        	<HeaderTemplate>                 <tr>                    <th>Title</th>                    <th>Artist</th>                    <th>Country</th>                </tr>            </HeaderTemplate>            <ItemTemplate>                <tr>                    <td><%#Container.DataItem("title")%></td>                    <td><%#Container.DataItem("artist")%></td>                    <td><%#Container.DataItem("country")%></td>                </tr>            </ItemTemplate>            <FooterTemplate>                    	</FooterTemplate>         </table>    </asp:Repeater></form>

使用 <AlternatingItemTemplate>

您可以在 元素后添加 元素,这样就可以描述交替行的外观了。

<ItemTemplate><tr><td><%#Container.DataItem("title")%></td><td><%#Container.DataItem("artist")%></td></tr></ItemTemplate><AlternatingItemTemplate><tr bgcolor="#e8e8e8"><td><%#Container.DataItem("title")%></td><td><%#Container.DataItem("artist")%></td></tr></AlternatingItemTemplate>

在这里插入图片描述

使用 <SeparatorTemplate>

<ItemTemplate><tr><td><%#Container.DataItem("title")%></td><td><%#Container.DataItem("artist")%></td></tr></ItemTemplate><SeparatorTemplate><tr><td colspan="6"><hr /></td></tr></SeparatorTemplate>

在这里插入图片描述

ASP.NET - DataList 控件

DataList 控件,类似于 Repeater 控件,用于显示限制于该控件的项目的重复列表。不过,DataList 控件会默认地在数据项目上添加表格。

ASP.NET - 数据库连接

ASP.NET 2.0 - 母版页(Master Pages)

母版页(Master Pages)为网站内的其他页面提供模版。

  1. Master Page 使您有能力为 web 应用程序中的所有页面(或页面组)创建一致的外观和行为。
  2. Master Page 为其他页面提供了模版,带有共享的布局和功能。Master Page 为内容定义了可被内容页面覆盖的占位符。而输出结果就是 Master Page 和内容页面的组合。
  3. 内容页包含您希望显示的内容。
  4. 当用户请求内容页时,ASP.NET 会对页面进行合并以生成输出,输出结果对 Master Page 的布局和内容页面的内容进行了合并。

Master Page实例:

<%@ Master %><html><body><h1>Standard Header For All Pages</h1><asp:ContentPlaceHolder id="CPH1" runat="server"></asp:ContentPlaceHolder></body></html>

Master Page 是一张为其他页面设计的普通 HTML 模版页。

@ Master 指令把它定义为一张 master page。

这个 master page 为单独的内容包含了一个占位符标签 asp:ContentPlaceHolder

id=“CPH1” 属性标识该占位符,在相同的 master page 中允许多个占位符。

该 master page 被保存为 “master1.master”

**注释:**该 master page 也能够包含代码,允许动态的内容。

内容页实例:

<%@ Page MasterPageFile="master1.master" %><asp:Content ContentPlaceHolderId="CPH1" runat="server"><h2>Individual Content</h2><p>Paragrap 1</p><p>Paragrap 2</p></asp:Content>

ASP.NET 2.0 - 导航(Navigation)

在 ASP.NET 2.0 中,菜单可存储在文件中,这样维护起来更加方便。这个文件通常名为 web.sitemap,被存放在网站的根目录中。

ASP.NET 2.0 拥有三种新的导航控件:

  • Dynamic menus
  • TreeViews
  • Site Map Path

Sitemap 文件实例:

<?xml version="1.0" encoding="ISO-8859-1" ?><siteMap>  <siteMapNode title="Home" url="/aspnet/w3home.aspx">  <siteMapNode title="Services" url="/aspnet/w3services.aspx">    <siteMapNode title="Training" url="/aspnet/w3training.aspx"/>    <siteMapNode title="Support" url="/aspnet/w3support.aspx"/>  </siteMapNode>  </siteMapNode></siteMap>

创建 sitemap 文件的规则:

  • XML 文件必须包含围绕内容的 标签
  • 标签只能有一个 子节点 (“home” page)
  • 每个 可以有多个子节点 (web pages)
  • 每个 拥有定义页面标题和 URL 的属性

**注释:**sitemap 文件必须存放在站点的根目录中,URL 属性必须相对于该根目录。

Dynamic Menu

<asp:Menu>控件可显示标准的站点导航菜单。

<asp:SiteMapDataSource id="nav1" runat="server" /><form runat="server"><asp:Menu runat="server" DataSourceId="nav1" /></form>

在上面的例子中的 <asp:Menu> 控件是一个供服务器创建导航菜单的占位符。

控件的数据源由 DataSourceId 属性进行定义。id=“nav1” 把它连接到 <asp:SiteMapDataSource> 控件

<asp:SiteMapDataSource> 控件会自动连接默认的 sitemap 文件(web.sitemap)。

TreeView

<asp:TreeView> 控件可显示多级导航菜单。

这种菜单看上去像一棵带有枝叶的树,可通过 + 或 - 符号来打开或关闭。

<asp:SiteMapDataSource id="nav1" runat="server" /><form runat="server"><asp:TreeView runat="server" DataSourceId="nav1" /></form>

上面例子中的 <asp:TreeView> 控件是一个供服务器创建导航菜单的占位符。

控件的数据源由 DataSourceId 属性进行定义。id=“nav1” 把它连接到 <asp:SiteMapDataSource> 控件

<asp:SiteMapDataSource> 控件会自动连接默认的 sitemap 文件(web.sitemap)。

SiteMapPath

SiteMapPath 控件可显示指向当前页面的指针(导航路径)。该路径显示为指向上级页面的可点击链接。

与 TreeView 和 Menu 控件不同,SiteMapPath 控件不使用 SiteMapDataSource。SiteMapPath 控件默认使用 web.sitemap 文件。

**提示:**如果 SiteMapPath 没有正确显示,很可能是由于 web.sitemap 文件中存在 URL 错误。

<form runat="server"><asp:SiteMapPath runat="server" /></form>

http://chatgpt.dhexx.cn/article/6TqJQ2xv.shtml

相关文章

ASP.NET(一)--WebForm简单介绍

WebForm B/S程序 浏览器服务应用程序&#xff0c;直接可以解释为网站类应用程序 静态网页与服务器技术 静态网页 以.html或以.htm为后缀的网页文件只能单纯的显示文本和图像无法和用户进行数据交互&#xff0c;无法根据用户的请求显示不同的网页内容(也就是无法和后台数据库…

关于webform的简单的基础操作 2.学会开发(一)

.net的B/S架构开发主要是MVC和webform的开发&#xff0c;因为WebForm是微软开发的一款产品&#xff0c;它将用户的请求和响应都封装为控件。让开发者认为自己是在操作一个windows界面&#xff08;和winform也是差不多的&#xff09;。极大地提高了开发效率。而MVC是由视图&…

35.Trie树:如何实现搜索引擎的搜索关键词提示功能

文章目录 1. 什么是“Trie树”&#xff1f;2. 如何实现一棵Trie树&#xff1f;3.Trie树真的很耗内存吗&#xff1f;4.Trie树与散列表、红黑树的比较5. 解答开篇 问题&#xff1a;搜索引擎的关键词的联想词是如何实现的&#xff1f; 1. 什么是“Trie树”&#xff1f; Trie树&a…

Trie树详解

什么是Trie树 Trie树又称字典树、单词查找树。是一种能够高效存储和查找字符串集合的数据结构。 可以快速的在集合中查询某个字符串 Trie树的本质就是利用字符串之间的公共前缀&#xff0c;将重复的前缀合并在一起 Trie的存储 Trie的存储形式就是构造成一个树形结构 比如我们以…

java trie_Trie树(字典树)的介绍及Java实现

简介 Trie树&#xff0c;又称为前缀树或字典树&#xff0c;是一种有序树&#xff0c;用于保存关联数组&#xff0c;其中的键通常是字符串。与二叉查找树不同&#xff0c;键不是直接保存在节点中&#xff0c;而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀&…

Trie前缀树

Trie前缀树 简介 Trie (发音为 "try") 又经常叫前缀树&#xff0c;字典树等等&#xff0c;是一种树数据结构&#xff0c;用于检索字符串数据集中的键。 在计算机科学中&#xff0c;trie是一种有序树&#xff0c;用于保存关联数组&#xff0c;其中的键通常是字符串…

Trie树

Trie树 文章目录 Trie树Trie树介绍应用场景举例代码实现例题 Trie树介绍 字典树 又称单词查找树&#xff0c;Trie树&#xff0c;是一种树形结构&#xff0c;是一种哈希树的变种。典型应用是用于统计&#xff0c;排序和保存大量的字符串&#xff08;但不仅限于字符串&#xff…

trie 树

一、普通 t r i e \rm trie trie 树 t r i e \rm trie trie 树又称字典树、前缀树&#xff0c;它把很多单词放到一棵树上&#xff0c;使用空间去换时间。 LUOGU2580 于是他错误的点名开始了 Description \text{Description} Description 给定 n n n 个互不相同且只含小写字…

Trie

文章目录 应用替换其他数据结构字典表达术语索引 算法排序全文检索 实现Bitwise triesCompressing triesExternal memory trie About Me Trie ,也叫做 digital tree(数字树) 有时候也是 radix tree(基数树) 或者 prefix tree(前缀树) (因为他们可以通过前缀进行搜索) 是一种 se…

Trie(字典树/前缀树)

字典树/前缀树 Trie&#xff08;发音类似 “try”&#xff09;或者说 前缀树&#xff08;字典树&#xff09; 是一种树形数据结构&#xff0c;用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景&#xff0c;例如自动补完和拼写检查。主要思想是利用字符…

trie(字典树、前缀树)

trie&#xff08;字典树、前缀树&#xff09; 1. trie原理 原理 trie树&#xff0c;又被称为字典树、前缀树&#xff0c;是一种高效地存储和查找字符串集合的数据结构。一般来说&#xff0c;用到trie的题目中的字母要么全是小写字母&#xff0c;要么全是大写字母&#xff0c;要…

Trie详解

Trie&#xff0c;又名字典树、单词查找树&#xff0c;可以较高效地实现统计、排序和保存大量的字符串。 顾名思义&#xff0c;Trie是一个树状的结构&#xff0c;按照树型结构来存储字符串&#xff0c;显然是一种以空间换时间的方法。整体上理解和实现都不会很难。 下面是实现方…

Trie 简介

一、Trie简介 在计算机科学中&#xff0c;Trie&#xff0c;又称字典树、前缀树、单词查找树或键树&#xff0c;是一种树形结构&#xff0c;是一种哈希树的变种。典型应用是用于统计&#xff0c;排序和保存大量的字符串&#xff08;但不仅限于字符串&#xff09;&#xff0c;所以…

Trie 字典树 详解

&#x1f60a; | Powered By HeartFireY | Tire Algorithm 一、字典树 1.字典树简介 字典树&#xff0c;英文名Trie&#xff0c;如其名&#xff1a;就是一棵像字典一样的树。 我们首先通过一张图来理解字典树的结构&#xff1a; 我们假定结点的顺序按照图中给定的顺序进行编…

Web前端面试题汇总(持续更新...)

H5 的新特性有哪些&#xff1f;C3 的新特性有哪些&#xff1f; H5 新特性 拖拽释放(Drap and drop) API ondrop自定义属性 data-id语义化更好的内容标签(header,nav,footer ,aside, article, section)音频 ,视频(audio, video) 如果浏览器不支持自动播放怎么办?在属性中添加…

Web前端面试题(全锦集)

1 第一部分&#xff1a; 聪明的猴子都在看右下角目录 点击查看更多资源 前端基础(HTML CSS JS基础) 1. 怎么让一个不定宽高的 DIV&#xff0c;垂直水平居中&#xff1f; 答&#xff1a;1.使用 CSS 方法&#xff1a; 父盒子设置&#xff1a;display&#xff1a;table…

web前端开发面试题(一)

一、html部分 1.1 link和import 区别如下&#xff1a; 1.1.1从属关系区别 import是 CSS 提供的语法规则&#xff0c;只有导入样式表的作用&#xff1b;link是HTML提供的标签&#xff0c;不仅可以加载 CSS 文件&#xff0c;还可以定义 RSS、rel 连接属性等。 2.加载顺序区别…

Web常见前端面试题及答案

前端技术导航大全 1、盒子模型 盒子模型包括四部分&#xff1a;内容&#xff08;content&#xff09;、填充&#xff08;padding&#xff09;、边框&#xff08;border&#xff09;、边界&#xff08;margin&#xff09; 盒子模型可以分为两种&#xff1a;IE盒子模型和W3C标准…

web前端开发面试题(七)

前端面试题第七天 一、HTML 部分 1.1 iframe框架都有哪些优缺点 在讲iframe框架之前 先聊聊iframe吧 定义&#xff1a;iframe是HTML标签&#xff0c;作用是文档中的文档&#xff0c;或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架&#xff08;即行内框…

2020 web前端面试题及答案大全

css相关 1. 万能居中 1.margin: 0 auto;水平 2.text-align: center;水平 3.行高&#xff0c;垂直 4.表格&#xff0c;center,middle&#xff1b;水平垂直 5.display:table-cell&#xff1b;模拟表格&#xff0c;all 6.绝对定位&#xff0c;50%减自身宽高 7.绝对定位&#xff…