🍎 CSS 的选择器相关
- CSS 的选择器有哪些?
- CSS 的选择器优先级为?
- CSS 哪些属性可以继承?
# CSS 选择器概念
CSS 选择器是 CSS 规则的一部分,是元素和其他部分组合起来告诉浏览器将规则中的 CSS 属性值应用到哪一个元素的方式。
哪个元素应当被选为应用规则中的 CSS 属性值的方式。
选择器选择的元素为选择器对象。
🌰 例子 / 对照例子:
<div id="box">
<div class="one">
<p class="one_1"></p>
<p class="one_2"></p>
<p class="one_3"></p>
</div>
<div class="two">
</div>
<div class="three">
</div>
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
常用的选择器有:
id
选择器:#box
,选择id
为box
的元素;class
选择器:.one
,选择类名为one
的 所有元素;标签选择器:
div
,选择标签为div
的 所有元素;后代选择器:
#box div
,选择id
为box
内部的所有idv
元素;子代选择器:
.one > .one_1
,选择父元素为.one
的所有.one_1
子元素;相邻同胞选择器:
.one + .two
,选择紧跟在.one
之后的所有.two
元素;群组选择器:
div, p
,选择div
和p
的所有元素。伪类选择器:
link
: 未访问的连接::visied
:选择已经访问过的连接 。:active
:活动的连接;:hover
:鼠标指针在元素上浮动;:focus
:选择具有焦点的元素;:first-child
:父元素的第一个子元素;
伪元素选择器:
:first-letter
:用于选取指定选择器的首字母;:first-line
:用于选取选择器的首行内容;:bofore
:在选择器被选元素的内容后面插入内容;:afrer
:在选择器被选元素的内容后面插入内容。
属性选择器:
[attribute]
:选择带有attribute
属性的元素;[attribute=valu]
:选择所有使用attribute=value
的元素;[attribute~=value]
:选择attribute
属性包含value
的元素;[attribute|=value]
:选择attribute
属性以value
开头的元素;[attribute*=value]
:选择attribute
属性值包含value
的所有元素。[attribute^=value]
:选择attribute
属性值开头为value
的所有元素。[attribute$=value]
:选择attribute
属性值结尾为value
的所有元素。
CSS 新增的选择器:
- 层次选择器
- 伪类选择器
- 属性选择器
# 选择器的优先级
由高到低顺序为:
- 内联;
- ID 选择器;
- 类选择器;
- 标签选择器;
根据权重计算得出优先级(上面的顺序分别由 A、B、C、D 对应):
- 如果存在内联样式,A = 1 否则 A = 0;
- B 的值为 ID 选择器 出现的次数;
- C 的值等于 类选择器和属性选择器 出现的次数;
- D 的值等于 标签选择器和伪元素 出现的总次数;
🌰 例子:
#nav-gloabl > ul > li > a.nav-link
1
- 没有内联样式, A = 0;
- ID 选择器出现了 1 次,B = 1;
- 类选择器出现了 1 次, C = 1;
- 标签选择器出现 3 次, D = 3 ;
该 (A,B,C,D)对应为 (0,1,1,3)
优先级计算后,比较规则:
- 从左到右依次进行比较,较大者优先级更高;
- 如果相等,往右移比较;
- 4 为全部相等,则后面会覆盖前面的样式(按照先后顺序)。
# 继承属性
指的是 给父元素设置的元素,后代元素会自动拥有这些属性。
继承属性分为:
- 字体系列属性:
font
font-family
font-weight
font-size
font-style
font-variant
- 文本系列属性:
text-indent
text-align
line-height
word-spacing
letter-spacing
text-transform
direction
color
- 元素可见性:
visibility
- 表格布局属性:
caption-style
border-collapse
border-spacing
empty-cells
table-content
- 列表属性:
list-style-type
list-style-position
list-style
- 引用:
quotos
- 光标属性:
cursor
特殊的继承:
a
标签的字体颜色不能被继承;h1
~h7
的字体大小不能被继承;
无继承的属性:
display
- 文本属性:
vertical-align
text-decoration
- 盒子模型的属性:宽度、高度、内外边距、边框等;
- 定位属性:浮动、清除浮动、定位等;
- 生成内容属性:
content
、counter-reset
、counter-increment
等; - 轮廓样式属性;
- 页面样式属性;
编辑 (opens new window)
📢 上次更新: 2022/09/02, 10:18:16