伪类和伪元素
伪类
伪类是添加到选择器的关键字,用于指定所选元素的特殊状态。例如,伪类 :hover
可以用于选择一个按钮,当用户的指针悬停在按钮上时,设置此按钮的样式。
/* 用户的指针悬停在其上的任何按钮 */
button:hover {
color: blue;
}
伪类由冒号(:
)后跟着伪类名称组成(例如,:hover
)。函数式伪类还包含一对括号来定义参数(例如,:dir()
)。附上了伪类的元素被定义为锚元素(例如,button:hover
中的 button
)。
伪类让你可以将样式应用于元素,不仅与文档树内容有关,也与外部因素有关——如与导航历史有关的(例如,:visited
)、与其内容的状态有关的(如某些表单元素上的 :checked
)或者与鼠标位置有关的(如 :hover
,它可以让你知道鼠标是否在一个元素上)。
伪元素
伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特定部分修改样式。下例中的 ::first-line
伪元素可改变段落首行文字的样式。
/* 每一个 <p> 元素的第一行。 */
p::first-line {
color: blue;
text-transform: uppercase;
}
伪元素创造的元素不存在在DOM文档中,是虚拟的元素,是创建新元素。代表某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。
单冒号和双冒号
按照规范,伪类使用单冒号: 伪元素使用双冒号::
不过由于早期没有规范进行区分,css3之前的伪元素,如::before
, ::after
等,也可用单冒号,而再css3中引入的伪元素不支持单冒号的写法,如::selection
伪类和伪元素
http://yellowcan.top/2021/10/09/wei-lei-he-wei-yuan-su/