一.伪类
:active 向被激活的元素添加样式。
:focus 向拥有键盘输入焦点的元素添加样式。
:hover 当鼠标悬浮在元素上方时,向元素添加样式。
:link 向未被访问的链接添加样式。
:visited 向已被访问的链接添加样式。
:first-child 向元素的第一个子元素添加样式。
:lang 向带有指定 lang 属性的元素添加样式。
二.伪元素(是行级元素)
:first-letter 向文本的第一个字母添加特殊样式。“first-letter” 伪元素只能用于块级元素。
:first-line 向文本的首行添加特殊样式。“first-line” 伪元素只能用于块级元素。
:before 在元素之前添加内容。必须加content属性
:after 在元素之后添加内容。必须加content属性 。通常用来清除浮动。
清除浮动三件套
ul::after{
content: '';
display: block;
clear: both;
}
伪元素的由两个冒号::开头,然后是伪元素的名称。
使用两个冒号::是为了区别伪类和伪元素(CSS2中并没有区别)。当然,考虑到兼容性,CSS2中已存的伪元素仍然可以使用一个冒号:的语法,但是CSS3中新增的伪元素必须使用两个冒号::
我的理解:
伪类,伪的类选择器,是可以选中的状态,选中的是里面本来就有的标签元素
伪元素,伪的元素,选中的是里面没有的元素,比如文本的首行,这只是完整标签的其中一部分,没有元素指向他;比如文本的首字母<p>confidence<p>,选中的是c,也没有元素标签。