本文发布于598天前,最后更新于 597 天前,其中的信息可能已经有所发展或是发生改变。
选择器
CSS主要有五大基本选择器
- 元素选择器:用于选择指定html元素
- 类选择器:用于选择指定了class的html元素
- id选择器:用于选择指定了id的html元素
- 伪类选择器:用于选择匹配特殊状态的html选择器,比如悬浮态hover,点击后的链接active,元素前before,元素后after
- 通用选择器:用于选择所有元素
语法
有了基本选择器,CSS可以通过语法来组合基本选择器,从而进一步指定要选择的元素
div button
空格间隔开的元素表示两者为父子级关系,其中前者为后者的父级,不一定要是直接后代,也可以是祖孙或者更高层级的父级。
<div>
<p>
*<button>
div>button
> 符号间隔开的元素表示两者为直接父子级关系
<div>
*<button>
div,p
逗号间隔开的元素表示两者为并列选择关系,之后的样式对两者都有效
*<div>
</div>
*<p>
</p>
p+span
加号间隔开的元素表示两者为相邻的同级元素
<div>
*<p>
*<span>
p~span
波浪线间隔开的元素表示两者为同级元素
<div>
*<p>
<button>
*<span>
示例
.button #submit
表示选择button类中id为submit的元素
<element class="button">
…
<element id="primary">
.button #submit,.button #cancel
表示选择button类中id为submit的元素,同时选择button类中id为cancel的元素
<element class="button">
…
<element id="primary">
或
<element class="button">
…
<element id="cancel">
div[*attribute*]
当使用vue的style scope限定组件样式时可以看到html中生成的都是类似于 element[data-hash]的样式选择器 这里其实就用到了 [attribute] 选择器.card:before .card:after .card:hover
等伪类选择器
优先级
选择器 | 备注 |
---|---|
!important | 慎用,可能造成样式混乱 |
内联样式 | 直接写在html的style属性里的样式 |
id选择器 | #id |
类和伪类选择器/属性选择器 | .class :hover element[attribute] |
元素选择器 | div |
通配符、子选择器、相邻选择器 | *、>、+ |
继承的样式 |