作者选择了 多样性在技术基金作为 写给捐款计划的一部分接受捐款。
介绍
网页表单是网站设计的一个常见元素,其复杂性从搜索表单字段到联系表单和复杂的数据过滤,知道如何使用CSS来设计和使用这些元素有助于为这些日常问题提供更好的解决方案,并可以改善您的网站的用户体验。
本教程涵盖创建和样式的网页表格,请求用户的各种数据。该表单将使用文本字段,无线电按钮,检查框,下载选项,文本区域,并提交和重置按钮。你将创建和样式这个表单及其元素
通过重置风格与外观
属性,为表单设置自己的一致的风格,添加空间对文本字段的答案,并自定义无线电按钮和检查框与各种假名类和假名元素。
前提条件
- 使用先进的选择器来查找和应用 HTML 元素的风格的经验. 有关此事的更多信息,请参阅 How To Select HTML Elements Using ID, Class, and Attribute Selectors in CSS 教程。
- CSS 框模型的知识,您可以在 How To Work with the Box Model in CSS 教程中找到。 您可以从您选择的文本编辑器和网页浏览器访问。 要开始,请参阅我们的 How To Set Up Your HTML Project] 教程,并遵循教程。 [How To Use and Understand Elements] HTML1 系列(https://andsky.com/tech/tutorials/how-to-use-and-understand-html-elements#how-to-view-an-offline-html-file-in-your-browser) 以您的本地机器存储为 index.html
建立基本的HTML和CSS
在这个第一个部分,你将设置的HTML和初始风格,你将工作在整个教程的剩余时间。
首先,在您的编辑器中打开 index.html
文件,然后添加以下 HTML 来为该文件提供基础结构:
1[label index.html]
2<!doctype html>
3<html>
4 <head>
5 <meta charset="utf-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1">
7 <title>CSS Form</title>
8 <link rel="stylesheet" href="styles.css" />
9 </head>
10 <body>
11 <main>
12 </main>
13 </body>
14</html>
包含在<head>
元素中的元素定义了页面名称与<title>
元素以及通过<link>
元素加载风格表的位置。<meta>
标签定义了字符编码,并指示浏览器如何在小屏幕设备上显示网站。
接下来,在<main>
元素中,创建一个<form>
元素。在<form>
中,你会添加各种表单元素和<div>
元素来帮助布局。在本教程中,从以前的步骤中提到代码的添加。
1[label index.html]
2...
3<main>
4 <form>
5 <div>
6 <label for="name">Name</label>
7 <input id="name" type="text" />
8 </div>
9 <div>
10 <label for="email">Email</label>
11 <input id="email" type="email" />
12 </div>
13 <div>
14 <label for="comp">Favorite CSS Compiler</label>
15 <select id="comp">
16 <option value="sass">Sass</option>
17 <option value="less">Less</option>
18 <option value="stylus">Stylus</option>
19 <option value="postcss">PostCSS</option>
20 <option value="other">Other</option>
21 </select>
22 </div>
23 <div>
24 <fieldset>
25 <legend>Are you familiar with CSS Grid?</legend>
26 <input type="radio" name="grid" id="yes" value="yes" />
27 <label for="yes">Yes</label>
28 <input type="radio" name="grid" id="no" value="no" />
29 <label for="no">No</label>
30 </fieldset>
31 </div>
32 <div class="full-width">
33 <label for="message">Message</label>
34 <textarea id="message"></textarea>
35 </div>
36 <div class="full-width">
37 <input type="checkbox" id="newsletter" />
38 <label for="newsletter">Receive our newsletter?</label>
39 </div>
40 <div class="full-width">
41 <button type="submit">Send Response</button>
42 <button type="reset">Clear Form</button>
43 </div>
44 </form>
45</main>
46...
HTML 表单结构由相互连接的属性值组成,以便正确运作. 此代码创建了一个表单,该表单要求用户提供他们的姓名和电子邮件,要求他们最喜欢的 CSS 编译器,如果他们知道 CSS 网格,为用户生成的消息提供一个字段,并有一个检查框,以便用户注册新闻稿。
请确保将更改保存为index.html,然后在同一个目录中创建一个名为styles.css的新文件。
在您的文本编辑器中打开 tyles.css
. 此文件提供了浏览器将应用于 index.html
的内容的样式。 将下列 CSS 代码添加到您的 styles.css
文件:
1[label styles.css]
2body {
3 margin: 0;
4 background-color: hsl(0, 0%, 98%);
5 color: #333;
6 font: 100% / normal sans-serif;
7}
8
9main {
10 margin: 0 auto;
11 padding: 4rem 0;
12 width: 90%;
13 max-width: 60rem;
14}
15
16form {
17 box-sizing: border-box;
18 padding: 2rem;
19 border-radius: 1rem;
20 background-color: hsl(0, 0%, 100%);
21 border: 4px solid hsl(0, 0%, 90%);
22 display: grid;
23 grid-template-columns: 1fr 1fr;
24 gap: 2rem;
25}
26
27.full-width {
28 grid-column: span 2;
29}
体
和主
元素选择器为整个页面创建了一些初始的文本样式和布局。形式
元素选择器创建了整体表单容器的样式,然后定义了一个 CSS 网格,由两个相同大小的列组成,其中有网格模板列: 1fr 1fr;
。
将您的更改保存到 styles.css
. 接下来,打开您选择的网页浏览器. 在浏览器中选择 File 菜单项,然后选择 Open 选项。 接下来,导航到您的项目文件夹并在浏览器中加载您的 index.html
文件。 下面的图像展示了该页面在浏览器中将如何显示:
表单显示在白色框中,以轻灰色背景。每个表单元素分散在网格中,前四个元素在两个列之间交替,最后三个元素堆积,覆盖两个列。
在本节中,您设置了与表单元素工作所需的初始HTML和CSS,您还了解到每个浏览器以不同的方式处理这些元素的样式。
使用外观
属性重置形式样式
每个浏览器以不同的方式处理形式元素的视觉样式。通常,这些元素的样式超出CSS的初始能力,并遵循操作系统的美学或浏览器的设计语言。
首先,在文本编辑器中打开styles.css
。 创建一个由按钮
、fieldset
、input
、legend
、select
和textarea
组成的新组选择器。 然后在选择器块中,将外观
属性设置为没有
,如下代码块所示:
1[label styles.css]
2...
3button,
4fieldset,
5input,
6legend,
7select,
8textarea {
9 appearance: none;
10}
由于这个属性的年龄和实施,大多数浏览器仍然需要添加到属性名称的供应商前缀。 vendor prefix 是将属性名称作为特定浏览器的标识符的特殊编码添加。 对于 Chrome, Safari,以及最近版本的 Edge和 Opera,这个前缀是 -webkit-
。
在使用供应商前缀时,重要的是先将一个属性的供应商前缀版本放置到非前缀版本中,以此方式,只支持前缀属性的旧浏览器将使用前缀,但支持前缀和非前缀版本的新浏览器将使用非前缀标准版本。
1[label styles.css]
2legend,
3fieldset,
4select,
5textarea,
6input,
7button {
8 -webkit-appearance: none;
9 -moz-appearance: none;
10 appearance: none;
11}
将您的更改保存到styles.css
,然后在您的浏览器中打开index.html
。外观
属性已经移除了装饰的风格,并转向了一个更简单的风格,如下图像所示:
外观
属性只允许您更改浏览器特定的样式。 最大变更的外观:没有
属性值是完全删除无线电按钮和检查框。 对于其他表单元素,需要一些属性来完全删除默认样式。 下列代码块中突出的 CSS 属性添加必要的样式来删除默认样式:
1[label styles.css]
2...
3button,
4fieldset,
5input,
6legend,
7select,
8textarea {
9 -webkit-appearance: none;
10 -moz-appearance: none;
11 appearance: none;
12 background-color: transparent;
13 border: none;
14 padding: 0;
15 margin: 0;
16 box-sizing: border-box;
17}
此 CSS 删除背景颜色并重置框模型的参数. 并非所有这些风格对所有元素都是必要的,但可以将这些重置风格在所有元素中组合起来。
将您的更改保存到 styles.css
,然后在浏览器中更新 `index.html。 表单元素从页面上视觉上消失了,如下图像所示:
在本节中,您使用了外观
和额外的属性,从表单元素中完全删除默认样式。您还使用供应商前缀,以适当的顺序适用于未来的浏览器版本的属性。
通过形状字段设置一致的风格
现在默认浏览器风格已经完全删除,您将应用一致的自定义美学在所有表单元素中。
首先,在文本编辑器中打开styles.css
,然后创建一个组选择器,其中包括输入
,选择
和textarea
。
1[label styles.css]
2...
3legend,
4fieldset,
5select,
6textarea,
7input,
8button {
9 ...
10}
11
12input,
13select,
14textarea {
15 border: 2px solid #333;
16 background-color: white;
17 border-radius: 0.25rem;
18}
这些样式在每个数据输入元素周围添加一个2px
暗灰色边界,以及白色背景和圆形角落。
接下来,您将为包含文本的数据输入元素应用风格。 您将使用属性选择器来指定根据其类型
属性值来目标哪个输入
元素。
1[label styles.css]
2...
3input,
4textarea,
5select {
6 ...
7}
8
9input[type="text"],
10input[type="email"],
11select,
12textarea {
13 font: 1.25rem / 1.5 sans-serif;
14 display: block;
15 box-sizing: border-box;
16 width: 100%;
17 padding: 0.5rem 0.75rem;
18}
这些样式在所有元素中都适用一致的字体大小和字体组。 例如,<textarea>
元素不会继承body
元素的字体设置,而display
,box- sizing
,width
和padding
属性为每个数据输入元素提供一致的布局和结构。
将您的更改保存到styles.css
,然后在您的 Web 浏览器中打开index.html
。如下图像所示,这些字段现在围绕它们有一个更厚的灰色边界,而<select>
元素的文本现在要大得多:
接下来,还有两个元素需要一些特殊的样式,除了你已经写的广泛的样式之外,第一个是给textarea
更多的高度,第二个是将定制的下落箭头应用到<select>
元素。
返回styles.css
并添加一个textarea
元素选择器。在选择器块中,创建一个min-height
属性设置为10rem
。这将为表单用户填写文本创建一个更大的初始区域。
1[label styles.css]
2...
3input[type="text"],
4input[type="email"],
5select,
6textarea {
7 ...
8}
9
10textarea {
11 min-height: 10rem;
12}
添加textarea
的样式后,下一步要做的是创建一个image
目录,您可以在命令提示中从同一个目录中运行以下操作,如您的index.html
和styles.css
文件:
1mkdir images
接下来,运行下面的弯曲
命令,将您要使用的第一个图像下载到新的图像
目录中:
1curl -sL https://assets.digitalocean.com/articles/68129/down-arrow.svg -o images/down-arrow.svg
您下载的图像是一个 SVG,这是一个类似于HTML的标记语言,用于绘制形状。
若要将此新图像添加到<select>
元素中,请返回styles.css
。 然后,创建一个select
元素选择器,并添加一个背景
属性,其中有以下代码块中的突出值:
1[label styles.css]
2...
3textarea {
4 min-height: 10rem;
5}
6
7select {
8 background: url("images/down-arrow.svg") no-repeat center right 0.75rem;
9}
此背景
属性将图像加载到选择
元素的背景,而不会重复图像,然后将图像垂直中心为中心
,并从右侧以右 0.75rem
来抵消。
将您的更改保存到 styles.css
,然后返回您的浏览器以更新页面. <textarea>
现在大约是其原始高度的两倍,而 <select>
元素在右侧有蓝色向下箭头。
在本节中,您为表单中的数据输入元素创建了自定义美观。您还为<选择>
元素创建了背景,以取代默认箭头。
定制无线电按钮和检查框使用:检查
伪类
现在你已经创建了表单的基本美学,是时候将这种视觉风格应用到无线电按钮和检查框的交互式输入
项目。
首先,在文本编辑器中打开styles.css
。你会用radio
或checkbox
的type
属性更改input
元素,以达到相同的高度和宽度值。
1[label styles.css]
2...
3select {
4 ...
5}
6
7input[type="radio"],
8input[type="checkbox"] {
9 height: 1.5em;
10 width: 1.5em;
11 vertical-align: middle;
12}
13
14input[type="radio"] {
15 border-radius: 50%;
16}
垂直对齐
属性用于对齐线文本项目. 将此设置为中间
,输入字段将位于文本对齐的中间。
将您的更改保存到styles.css
,然后在浏览器中打开index.html
。两个无线电按钮和检查框现在更大,更明显,如下图像所示:
如果您要与无线电按钮或检查框进行交互,不会发生任何可见的事件。外观
属性还会删除这些类型的输入选定的指标。
返回‘styles.css’并创建一个新的选择器,以便输入无线电按钮的名称为‘:checked’。然后,在选择器块内,添加一个具有‘radial-gradient’的‘背景图像’,以便在选定的无线电按钮中应用一个填写式的样式。
1[label styles.css]
2...
3input[type="radio"] {
4 border-radius: 50%;
5}
6
7input[type="radio"]:checked {
8 background-image: radial-gradient(
9 hsl(213, 73%, 50%) 40%,
10 transparent calc(40% + 1px)
11 );
12}
calc()
函数允许在颜色值后设置透明
属性为1px
,在输入字段中创建一个坚固的蓝色圆圈。
将您的更改保存到styles.css
并返回您的浏览器中的index.html
。 无线电按钮现在有一个坚固的蓝色圆圈,在输入中包含白色。
接下来,检查框将使用背景图像来表示其 : checked’ 状态,类似于
运行以下弯曲
命令,将标记图像下载到您的图像
目录:
1curl -sL https://assets.digitalocean.com/articles/68129/check.svg -o images/check.svg
现在你已经下载了图像并准备好使用,回到文本编辑器中的styles.css
。
接下来,添加一个输入[type="checkbox"]
选择器,附加一个:checked
伪类。在选择器块中,添加一个背景
属性,加载check.svg
图像,并将其缩小到将其放入框中。
1[label stlyes.css]
2...
3input[type="radio"]:checked {
4 ...
5}
6
7input[type="checkbox"]:checked {
8 background: url('images/check.svg') no-repeat center / 75% auto;
9}
背景
属性值确保检查标记图像以容器为中心,不重复,并按比例缩小75%。
将您的更改保存到 styles.css
,然后在浏览器中刷新页面. 当选择 收到我们的电子邮件选项框时,现在内部出现一个标记,如下图所示:
在本节中,您创建了自定义无线电按钮和输入字段,并通过使用:checked
伪类来调整其选择的状态。
向标签和传说添加特殊风格
格式的下一个元素是形式中的<标签>
和<传奇>
元素. 将使用两个不同的风格:为无线电按钮和检查框的小标签风格,以及剩余元素的大标签风格。
在文本编辑器中打开index.html
,您将为每个<label>
和<legend>
添加一个类
属性,其值为大标签
或小标签
,如下文所示:
1[label index.html]
2...
3<form>
4 <div>
5 <label for="name" class="large-label">Name</label>
6 <input id="name" type="text" />
7 </div>
8 <div>
9 <label for="email" class="large-label">Email</label>
10 <input id="email" type="email" />
11 </div>
12 <div>
13 <label for="comp" class="large-label">Favorite CSS Compiler</label>
14 ...
15 </div>
16 <div>
17 <fieldset>
18 <legend class="large-label">Are you familiar with CSS Grid?</legend>
19 <input type="radio" name="grid" id="yes" value="yes" />
20 <label for="yes" class="small-label">Yes</label>
21 <input type="radio" name="grid" id="no" value="no" />
22 <label for="no" class="small-label">No</label>
23 </fieldset>
24 </div>
25 <div class="full-width">
26 <label for="message" class="large-label">Message</label>
27 <textarea id="message"></textarea>
28 </div>
29 <div class="full-width">
30 <input type="checkbox" id="newsletter" />
31 <label for="newsletter" class="small-label">Receive our newsletter?</label>
32 </div>
33 ...
34</form>
35...
将这些添加到index.html中,然后在文本编辑器中打开styles.css。
在 styles.css
中,添加一个 .large-label
类选择器,并按下列代码块所突出的方式添加以下属性:
1[label styles.css]
2...
3.full-width {
4 grid-column: span 2;
5}
6
7.large-label {
8 display: inline-block;
9 font: bold 1.5rem sans-serif;
10 margin-bottom: 0.5rem;
11}
12...
这些风格将大标签
元素设置为大和大胆,字体大小为1.5rem
,相当于24px
。
将此更改保存到styles.css
,并在您的 Web 浏览器中打开index.html
。数据输入字段上的标签文本将大大大,如下图像所示:
返回styles.css
并为.small-label
创建另一个类选择器. 因为这些标签位于无线电按钮或检查框的右侧,它们需要与.large-label
相比一些不同的间隔和尺寸样式。
1[label styles.css]
2...
3.large-label {
4 display: inline-block;
5 font: bold 1.5rem sans-serif;
6 margin-bottom: 0.5rem;
7}
8
9.small-label {
10 vertical-align: middle;
11 display: inline-block;
12 margin-left: 0.25rem;
13 margin-right: 1.5rem;
14 font: 1.25rem sans-serif;
15}
16...
垂直对齐:中间
将稍微抵消文本。字体设置为1.25rem
,相当于20px
,具有sans-serif
字体。
将更新保存到styles.css
,并在浏览器中更新index.html
。接着的电台按钮和检查框的标签现在更大,提供更多的间隔,如下图像所示:
在本节中,您根据它们的输入值的位置创建了两种不同类型的标签的样式。
提供位置持有人
内容与::位置持有人
伪元素
在一个输入
或textarea
元素上的位址
内容为表单用户提供了所要求的信息的视觉演示,以及如何格式化它。
要开始创建位置
内容,请在文本编辑器中打开index.html
。 将位置
属性添加到名称文本<input />
,电子邮件<input />
和<textarea>
元素中。
1[label index.html]
2...
3<form>
4 <div>
5 <label for="name" class="large-label">Name</label>
6 <input id="name" type="text" placeholder="First or Full Name" />
7 </div>
8 <div>
9 <label for="email" class="large-label">Email</label>
10 <input id="email" type="email" placeholder="[email protected]" />
11 </div>
12 ...
13 <div class="full-width">
14 <label for="message" class="large-label">Message</label>
15 <textarea id="message" placeholder="Leave a message…"></textarea>
16 </div>
17 ...
18</form>
19...
将您的更改保存到index.html,然后在 Web 浏览器中打开页面. 这些三个文本输入区域现在有内容。 一旦这些文本输入字段被选中并添加了内容,则浏览器将删除位置保持者文本。 下面的图像说明了默认位置保持者风格在浏览器中如何显示:
要在文本编辑器中打开tyles.css
以定义placeholder
,请为input::placeholder
和textarea::placeholder
添加一个组选择器,请确保在选择器和伪元素之间使用双列,因为这就是浏览器如何识别伪元素和伪元素之间的区别。
1[label styles.css]
2...
3textarea {
4 min-height: 10rem;
5}
6
7input::placeholder,
8textarea::placeholder {
9 opacity: 1; /* Firefox */
10 color: hsl(213, 73%, 50%);
11}
12
13select {
14 background: url("images/down-arrow.svg") no-repeat center right 0.75rem;
15}
16...
值得注意的是,Firefox 需要一个不透明度
值设置为1
,以获得完整的颜色值。否则,Firefox 会减少不透明度
,缩小文本颜色,并导致可访问的颜色对比问题,取决于颜色值。
将您的更改保存到 styles.css
,然后返回浏览器以更新 index.html
. 位置保持者文本现在是用于下落箭头和选择的状态的蓝色颜色,用于无线电按钮和检查框。
在本节中,您在文本输入字段中创建了位置保持者
的内容,并使用位置保持者
伪元素来格式化它们,在下一节中,您将为表单<按钮>
元素创建自定义样式。
创建互动按钮风格
在网页表单中,<按钮>
元素通常用于提交或重置表单.在index.html
中,有两个按钮,一个具有提交
的类型
,另一个是重置
。这两个功能都很有用,但执行相反的操作。
首先,在文本编辑器中打开styles.css
并创建一个按钮
元素选择器,在这个选择器块中,您将添加在提交
和重置
元素之间共享的样式,如下面的代码块所示:
1[label styles.css]
2...
3input[type="checkbox"]:checked {
4 background: url("images/check.svg") no-repeat center / 75% auto;
5}
6
7button {
8 font: 1.25rem sans-serif;
9 border-radius: 0.25rem;
10 cursor: pointer;
11 padding: 0.75rem 1.25rem;
12}
字体
将两个按钮设置为相同的字体风格和大小,然后边界半径
将一个圆形的角落添加到两个按钮中。
将您的更改保存到 styles.css
,然后在您的 Web 浏览器中打开 `index.html。 按钮中的文本将增长,文本之间的间隔将视觉上增加,由于插件。 下面的图像显示了按钮在浏览器中如何渲染:
接下来,返回styles.css
以添加每个按钮的类型
的样式,使用针对每个按钮的属性选择器。对于提交
按钮,添加蓝色背景颜色
和白色
文本颜色。重置
按钮将获得类似链接的底线和边缘
,以增加按钮之间的空间。
1[label styles.css]
2...
3button {
4 ...
5}
6
7button[type="submit"] {
8 background-color: hsl(213, 73%, 50%);
9 color: white;
10}
11
12button[type="reset"] {
13 text-decoration: underline;
14 margin-left: 1rem;
15}
将这些添加到styles.css
,然后在文本编辑器中更新index.html
。提交
按钮现在是显着的蓝色和白色,而重置
则是低调的强调文本,如下图像所示:
<按钮>
元素默认情况下没有:hover
状态,所以您现在将其添加到您的风格中。
要为这些<按钮>
元素创建:hover
状态,请在文本编辑器中返回styles.css
。 将提交
按钮的后台颜色
设置为在hover上变暗。 然后,在hover时,让重置
按钮放下底线。 以下代码块中的突出HTML说明了如何写这些风格:
1[label styles.css]
2...
3button[type="submit"] {
4 background-color: hsl(213, 73%, 50%);
5 color: white;
6}
7
8button[type="submit"]:hover {
9 background-color: hsl(213, 73%, 40%);
10}
11
12button[type="reset"] {
13 text-decoration: underline;
14 margin-left: 1rem;
15}
16
17button[type="reset"]:hover {
18 text-decoration: none;
19}
将您的更改保存到 styles.css
,然后返回浏览器以更新 index.html
. 随着下面的动画描绘,当鼠标标向它们倾斜时, <按钮>
元素将更改其风格:
在本节中,您为<按钮>
元素创建了风格,以便它们的差异在视觉上可见。您通过调整按钮
属性来更改了按钮的显示方式。您还创建了自定义风格来应用于每个按钮,以提供进一步的视觉反馈。
用「:focus」澄清 Active Form 字段
在填写表单时,重要的是用户知道他们目前正在处理的领域。您可以使用:focus
假类类来完成此操作。默认情况下,浏览器使用outline
属性来表示一个元素有:focus
,但有时它可能不是一个显著的指标,或者它可能与设计的其他视觉方面发生冲突。
要开始使用表单字段 :focus
状态,请在文本编辑器中打开 styles.css. 创建一个为
input、
select和
textarea的组选择器,所有这些都具有
:focus` 假类类,如下列代码块所示:
1[label styles.css]
2...
3input,
4select,
5textarea {
6 ...
7}
8
9input:focus,
10select:focus,
11textarea:focus {
12 outline: none;
13 box-shadow: 0 0 0 4px hsl(213, 90%, 70%);
14}
15
16input[type="text"],
17input[type="email"],
18select,
19textarea {
20 ...
21}
22...
这些风格删除浏览器的默认outline
值,并用box-shadow
属性创建的厚蓝色字符串代替该风格。
接下来,按钮将收到稍微不同的焦点状态,因为提交
按钮是相同的蓝色。焦点状态的目的和意图是对焦点元素引起明显的注意,因此您将以不同的方式区分这些外观。
将按钮:焦点
选项添加到styles.css
。在选项区块中,禁用边界
的默认设置并添加一个盒子阴影
属性。放置、模糊和扩散值将与输入字段相同,但颜色将是黑色而不是蓝色,如下一个代码区所示:
1[label styles.css]
2...
3button {
4 ...
5}
6
7button:focus {
8 outline: none;
9 box-shadow: 0 0 0 4px black;
10}
11
12button[type="submit"] {
13 ...
14}
15...
将更改保存到 styles.css
,然后返回浏览器. 更新 index.html
并开始按 Tab 键,以便焦点在表单中的每个元素之间切换。
在本节中,您创建了焦点状态样式,在表单元素有焦点时提供清晰的视觉反馈。
结论
表单是网页设计的一种常见元素,它们允许用户与应用程序、搜索内容进行交互,并提供反馈。在本教程中,您创建并设计了一种完整的表单。您删除了浏览器的外观
属性默认样式,并在各种元素中创建了一种新的自定义美学。您使用了:检查
伪类来为无线电按钮和检查框创建选定的状态。然后您添加了位置持有者
内容,并与::位置持有者
伪元素匹配了样式。
如果您想阅读更多 CSS 教程,请尝试 How To Style HTML with CSS series中的其他教程。