Here is the example content函数
须要注意的是若是没有content属性,伪类元素将没有任何做用。可是能够指定content为空,同时正如前面所说,插入的内容默认是一个行内元素,而且在HTML源代码中没法看到,这就是为何称之为伪类元素的理由,因此也就没法经过DOM对其进行操做。post
#example:before {
content: "";
display: block;
width: 100px;
height: 100px;
}
伪类元素也会像其余子元素同样正常继承父元素的一些CSS属性,好比字体等。字体
除了插入文字内容,还能够指定其余内容:this
p:before {
content: url('img.jpg');
}
a:after {
content: attr(href);
}
attr()函数会返回指定元素对应属性的值url
最后,奉上最惦记的浏览器支持状况spa
- Chrome 2+,
- Firefox 3.5+ (3.0 had partial support),
- Safari 1.3+,
- Opera 9.2+,
- IE8+ (with some minor bugs),
- Pretty much all mobile browsers.
放在伪类元素里面的内容通常都只是装饰性的,因此即使是IE6/7不支持也应该能降级到正常显示主体内容。
:before和:after的一些惊人用法
>. clearfix hack
若是父元素容器里面的子元素是浮动元素的话,咱们通常须要在父元素闭合前添加一个clear:both的元素用于清除浮动从而能使父容器正常被子元素内容撑起,可是这种方法引入了多余的无心义标签,而且有javascript操做子元素的时候容易引起bug。一种更好的方法是利用CSS,因此在一些CSS文件中常常会看到相似于.clearfix这样的类出没,只要在父容器上应用这个类便可实现清除浮动。下面是利用:before和:after的一个实现:(via Nicolas Gallagher)
/* For modern browsers */
.clearfix:before,
.clearfix:after {
content:"";
display:table;
}
.clearfix:after {
clear:both;
}
/* For IE 6/7 (trigger hasLayout) */
.clearfix {
zoom:1;
}
>. CSS实现的八卦图案