您现在的位置:首页 >> 前端 >> 内容

关于css中的伪类和伪元素

时间:2017/3/21 9:29:00 点击:

  核心提示:关于css中的伪类和伪元素。前端经常接触到的伪类比如:link, :visit, :hover, :focus,经常接触到的伪元素比如:before, :after,之前对于伪类和伪元素之间的区别了解...

关于css中的伪类和伪元素。前端经常接触到的伪类比如:link, :visit, :hover, :focus,经常接触到的伪元素比如:before, :after,之前对于伪类和伪元素之间的区别了解的并不多。

首先来看伪类 :

css2 对伪类的定义,伪类用于向某些浏览器添加特殊的效果,

css3对伪类的定义,伪类存在的意义在于通过选择器找到那些不存在于DOM树中的信息,以及被常规选择器无法选择到的信息

css3的定义要清晰的多,因为css3对与伪类和微元素的区分比较明确关于css中的伪类和伪元素

css3新增的伪类

 

p:last-of-type 选择其父元素的最后的一个P元素

p:last-child 选择其父元素的最后子元素(一定是P才行)

 

p:first-of-type 选择其父元素的首个P元素

p:first-child 选择其父元素的首个p元素(一定是p才行)

 

p:only-child    选择其父元素的只有一个元素(而且这个元素只能是p元素,不能有其他元素)

p:only-of-type   选择其父元素的只有一个p元素(不能有第二个P元素,其他元素可以有) 

 

选择第几个

p:nth-child(n)   选择其父元素的第N个 刚好是p的元素

p:nth-last-child(n) ..............................................从最后一个子元素开始计数

p:nth-of-type(n)  选择其父元素的n个元素

p:nth-last-of-type(n) ........................从最后一个子元素开始计数

用于input的

:enabled

 



 

其次,伪元素

css2对于伪元素的定义集合和伪类一样: 伪元素用于向浏览器设置特殊的效果

css3对于伪元素的定义,伪元素在DOM树中创建了一些抽象的元素,这些元素不存在于html文档中

例如我们经常用于清除浮动的 :after伪元素

需要注意的时,伪元素的使用规范时两个冒号::后跟伪元素的名称,但是css2中的伪元素任然是一个冒号:

所以为了兼容,只有css3新增的伪元素才使用两个冒号,之前的伪元素还是使用一个冒号

新增的伪元素有::selection

最后作总结和区分

1,伪类的本质是弥补选择器的不足,以获取更多的信息

2,伪元素的本质是创建一个不存在与html源码的有内容的容器

3,可以同时使用多个伪类,但是只能同时使用一个伪元素

小tips:

利用伪元素清除浮动:

p:after{

display:block;

content:"";

height:0;

clear:both;

}

display:block是为了让伪元素显示,

content:"",避免显示内容,将内容设置为空

height:0;高度设置为0

clear:both;清除浮动

Tags:关于 于C CS SS 
作者:网络 来源:zhm0303的博客