一、Emmet 语法
(一)Emmet 语法概述
Emmet 语法是一种快速编写 HTML 和 CSS 代码的高效方式,它能显著提高代码编写速度,尤其适用于前端开发人员。借助特定的缩写规则,能快速生成所需的代码结构。
(二)HTML 中的 Emmet 语法
1. 标签生成
- 直接输入标签名,按下 Tab 键,即可生成对应的 HTML 标签。例如输入
div
,按 Tab 键会生成 <div></div>
。
- 可以使用数字后缀来生成多个相同的标签。如输入
p*3
,按 Tab 键会生成:
2. 嵌套标签
- 使用
>
符号表示父子嵌套关系。例如输入 ul>li
,按 Tab 键会生成:
- 若要生成多层嵌套,如
div>ul>li
,会生成:
1 2 3 4 5
| <div> <ul> <li></li> </ul> </div>
|
3. 兄弟标签
使用 +
符号表示兄弟关系。例如输入 div+p
,按 Tab 键会生成:
4. 分组
使用括号 ()
进行分组。例如输入 (div>p)+(ul>li)
,会生成:
1 2 3 4 5 6
| <div> <p></p> </div> <ul> <li></li> </ul>
|
5. 属性设置
- 使用
[]
来设置标签的属性。例如输入 a[href="https://www.example.com"]
,按 Tab 键会生成:
1
| <a href="https://www.example.com"></a>
|
- 可以同时设置多个属性,如
input[type="text"][name="username"]
,会生成:
1
| <input type="text" name="username">
|
6. 类名和 ID 设置
- 使用
.
来设置类名,#
来设置 ID。例如输入 div.class1#id1
,按 Tab 键会生成:
1
| <div class="class1" id="id1"></div>
|
7. 内容填充
使用 {}
来填充标签内容。例如输入 p{这是段落内容}
,按 Tab 键会生成:
8. 编号
使用 $
进行编号。例如输入 ul>li.item$*3
,按 Tab 键会生成:
1 2 3 4 5
| ul> <li class="item1"></li> <li class="item2"></li> <li class="item3"></li> </ul>
|
(三)CSS 中的 Emmet 语法
1. 属性缩写
- 许多 CSS 属性都有对应的缩写。例如输入
w100
,按 Tab 键会生成 width: 100px;
。
- 常见的缩写还有
h100
(height: 100px;
)、fs16
(font-size: 16px;
)等。
2. 颜色缩写
输入 c#f00
,按 Tab 键会生成 color: #f00;
。
二、CSS 知识深入
(一)CSS 复合选择器
1. 复合选择器概述
复合选择器由两个或多个基础选择器组合而成,能够更精准、高效地选择目标元素,提升样式设置的灵活性和针对性。
2. 后代选择器
- 定义:用于选择某个元素的所有后代元素,包括子元素、孙元素等。
- 语法:选择器 1 选择器 2 {样式声明},中间用空格分隔。
- 示例:
ul li { color: red; }
会将 <ul>
标签内所有 <li>
标签的文本颜色设置为红色。
- 特点:不限制嵌套层级,只要是后代关系即可匹配。
3. 子选择器
- 定义:只选择某个元素的直接子元素,即仅匹配下一级的子元素。
- 语法:选择器 1 > 选择器 2 {样式声明},使用
>
符号分隔。
- 示例:
div > p { font-size: 16px; }
只会选择 <div>
标签的直接子元素 <p>
并设置字体大小。
- 特点:只作用于直接子元素,不影响孙元素等更深层级的元素。
4. 并集选择器
- 定义:用于同时选择多个不同的元素,为它们统一设置相同的样式。
- 语法:选择器 1, 选择器 2 {样式声明},使用逗号分隔。
- 示例:
h1, p { margin: 0; }
会将 <h1>
标签和 <p>
标签的外边距都设置为 0。
- 特点:可以将多个不同类型的选择器组合在一起,提高代码的复用性。
5. 伪类选择器
- 定义:用于选择元素的特定状态或位置,常见于链接、表单元素等。
- 常见伪类选择器及用法
- 链接伪类选择器
:link
:用于选择未访问的链接,设置其默认样式。
:visited
:用于选择已访问过的链接,设置其样式。
:hover
:用于选择鼠标悬停在元素上时的状态,常用于实现交互效果。
:active
:用于选择元素被激活(如鼠标按下但未松开)时的状态。
- 注意事项:为了确保样式的正确显示,链接伪类选择器的声明顺序一般为
:link
、:visited
、:hover
、:active
,即遵循 LVHA 原则。
- 其他伪类选择器
:focus
:用于选择获得焦点的表单元素,如输入框获得焦点时可以改变其样式。
(二)CSS 元素显示模式
1. 显示模式分类
- 块级元素
- 常见标签:
<div>
、<p>
、<h1>
- <h6>
、<ul>
、<ol>
、<li>
等。
- 特点:独占一行,宽度默认是父元素的 100%;可以设置宽度和高度;可以包含其他块级元素和行内元素,但
<p>
标签不能包含其他块级元素。
- 行内元素
- 常见标签:
<a>
、<span>
、<em>
、<strong>
、<i>
、<u>
、<s>
等。
- 特点:不会独占一行,多个行内元素可以在同一行显示;宽度和高度由内容决定,不能直接设置宽度和高度;只能包含文本或其他行内元素。
- 行内块元素
- 常见标签:
<img>
、<input>
、<textarea>
、<select>
等。
- 特点:多个行内块元素可以在同一行显示;可以设置宽度和高度;在同一行显示时,元素之间会有一定的空白间隙。
2. 显示模式转换
使用 display
属性:可以通过设置 `
1 2 3
| .test { display: block; }
|
属性的值来改变元素的显示模式。
display: block;
:将元素转换为块级元素。
display: inline;
:将元素转换为行内元素。
display: inline-block;
:将元素转换为行内块元素。
(三)CSS 背景属性
1. 背景颜色
- 属性:
background-color
- 取值:可以使用预定义的颜色名称(如
red
、blue
等)、十六进制颜色值(如 #ff0000
)、RGB 颜色值(如 rgb(255, 0, 0)
)或 RGBA 颜色值(支持透明度,如 rgba(255, 0, 0, 0.5)
)。
2. 背景图片
- 属性:
background-image
- 取值:使用
url()
函数指定图片的路径,如 background-image: url('image.jpg');
。
3. 背景平铺
- 属性:
background-repeat
- 取值
repeat
:默认值,背景图片在水平和垂直方向都平铺。
no-repeat
:背景图片不平铺。
repeat-x
:背景图片在水平方向平铺。
repeat-y
:背景图片在垂直方向平铺。
4. 背景位置
- 属性:
background-position
- 取值
- 方位名词:如
left top
、center center
、right bottom
等,分别表示左上角、居中、右下角等位置。
- 精确数值:可以使用像素值或百分比来指定背景图片的位置,如
background-position: 20px 30px;
或 background-position: 50% 50%;
。
5. 背景固定
- 属性:
background-attachment
- 取值
scroll
:默认值,背景图片随页面滚动而滚动。
fixed
:背景图片固定在页面上,不随页面滚动而滚动。
6. 背景复合属性
- 属性:
background
- 语法:
background: 颜色 图片地址 平铺方式 固定方式 位置;
,各属性值之间用空格分隔,且顺序可以任意调整。例如:background: #f00 url('image.jpg') no-repeat fixed center top;
三、总结回顾
(一)Emmet 语法总结
Emmet 语法通过简洁的缩写规则,大大提高了 HTML 和 CSS 代码的编写效率。在 HTML 中可以方便地生成标签、设置属性、嵌套元素等;在 CSS 中能快速输入属性缩写和颜色值。
(二)CSS 知识总结
- 复合选择器:后代选择器、子选择器、并集选择器和伪类选择器为精准选择元素提供了强大的工具,根据不同的需求合理使用可以优化样式代码。
- 元素显示模式:了解块级元素、行内元素和行内块元素的特点,并掌握通过
display
属性进行显示模式转换,是实现页面布局的基础。
- 背景属性:背景颜色、背景图片、背景平铺、背景位置和背景固定等属性可以为页面元素添加丰富的背景效果,复合属性的使用能简化代码书写。
四、涉及单词汇总及翻译
英文单词 |
中文翻译 |
Emmet syntax |
Emmet 语法 |
ancestor selector |
后代选择器 |
child selector |
子选择器 |
union selector |
并集选择器 |
pseudo-class selector |
伪类选择器 |
block-level element |
块级元素 |
inline element |
行内元素 |
inline-block element |
行内块元素 |
display mode |
显示模式 |
background color |
背景颜色 |
background image |
背景图片 |
background repeat |
背景平铺 |
background position |
背景位置 |
background attachment |
背景固定 |
background shorthand property |
背景复合属性 |
link pseudo-class |
链接伪类 |
hover |
悬停 |
active |
激活 |
focus |
焦点 |
abbreviation |
缩写 |
nest |
嵌套 |
sibling |
兄弟 |
grouping |
分组 |
attribute |
属性 |
class name |
类名 |
ID |
标识符 |
content filling |
内容填充 |
numbering |
编号 |
五、相关参考
B 站 pink 老师视频