CSS 属性 - 伪类和伪元素

 

CSS 伪类用于向某些选择器添加特殊的效果。javascript

 

CSS 伪元素用于将特殊的效果添加到某些选择器。css

 

能够明确两点,第一二者都与选择器相关,第二就是添加一些“特殊”的效果。这里特殊指的是二者描述了其余 css 没法描述的东西。html

 

 

伪类种类

 

伪元素种类

 

区别

这里用伪类 :first-child 和伪元素 :first-letter 来进行比较。java

p>i:first-child {color: red} <p> <i>first</i> <i>second</i> </p>

 

 //伪类 :first-child 添加样式到第一个子元素
若是咱们不使用伪类,而但愿达到上述效果,能够这样作:jquery

.first-child {color: red} <p> <i class="first-child">first</i> <i>second</i> </p>

 

即咱们给第一个子元素添加一个类,而后定义这个类的样式。那么咱们接着看看为元素:css3

p:first-letter {color: red} <p>I am stephen lee.</p>

 

 //伪元素 :first-letter 添加样式到第一个字母
那么若是咱们不使用伪元素,要达到上述效果,应该怎么作呢?segmentfault

.first-letter {color: red} <p><span class='first-letter'>I</span> am stephen lee.</p>

 

即咱们给第一个字母添加一个 span,而后给 span 增长样式。
二者的区别已经出来了。那就是:ide

伪类的效果能够经过添加一个实际的类来达到,而伪元素的效果则须要经过添加一个实际的元素才能达到,这也是为何他们一个称为伪类,一个称为伪元素的缘由。函数

总结

伪元素和伪类之因此这么容易混淆,是由于他们的效果相似并且写法相仿,但实际上 css3 为了区分二者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。url

:Pseudo-classes ::Pseudo-elements

 

但由于兼容性的问题,因此如今大部分仍是统一的单冒号,可是抛开兼容性的问题,咱们在书写时应该尽量养成好习惯,区分二者。

 

 

例子:

利用伪元素伪造一个浮动里面的clear:both功能

 1 CSS代码:  2  3 .clearfix:after{  4  content: '.'; 添加的内容  5  visibility: hidden; 将内容不可见,可是所占得位置还在  6  height: 0; 将添加内容的高度设置为0,以便隐藏多余的样式  7  display: block; 将内联标签转换为块级标签  8  clear: both;  9 } 10 11 html代码: 12 13 <div class="clearfix"> 14  <div style="float: left">第一个</div> 15  <div style="float: left">第二<br/>个</div> 16 17  </div>

 

通常在写页面时,常常会遇到float的css样式,能够写一个上面的全局样式,应用到页面当中,就不须要再考虑float的问题了、

 

 

利用伪类:hover和伪元素:after二者制做一个带有“返回顶部”文字的按钮:

 1 CSS样式代码:  2  3 .hide{  4  display: none;  5 }  6  .icon{  7  background: url(images/index-bg_20160225.png) no-repeat;  8  background-position: -40px -385px;  9  width: 16px;  10  height: 16px;  11  display: inline-block;  12  overflow: hidden;  13  margin-top: 10px;  14 }  15  16  .back{  17  position: fixed;  18  right: 80px;  19  bottom: 100px;  20  width: 50px;  21 }  22  .gotop{  23  position: relative;  24  width: 48px;  25  height: 38px;  26  border: 1px solid #ccd3e4;  27  color: #fff;  28  text-align: center;  29  30  31 }  32  .gotop .icon{  33  margin-top: 10px;  34 }  35  36  .gotop:hover:after {  37  top: 0;  38  left: 0;  39  width: 100%;  40  height: 100%;  41  content: " ";  42  position: absolute;  43  background-color: #3b5998;  44 }  45  46  .content {  47  visibility: hidden;  48  width: 30px;  49  height: 32px;  50  padding: 3px 10px;  51  cursor: pointer;  52  font-size: 12px;  53  z-index: 1;  54  text-align: center;  55  line-height: 16px;  56  top: 0;  57  position: absolute;  58  59 }  60  61  .gotop:hover .content {  62  visibility: visible;  63 }  64  65  66 HTML代码:  67  68 <div class="back hide">  69  <div class="gotop" onclick="GoTop();">  70  <a class="icon"></a>  71  <div class="content">  72  <span>返回顶部</span>  73  </div>  74  </div>  75 </div>  76  77  78 jQuery代码:  79  80 <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>  81 <script type="text/javascript">  82  83  function GoTop(){  84  //返回顶部  85  $(window).scrollTop(0);  86 }  87  88  $(function(){  89  90  $(window).scroll(function(){  91  //当滚动滑轮时,执行函数体  92  93  //获取当前滑轮滚动的高度  94  var top = $(window).scrollTop();  95  96  if(top>0){  97  //展现“返回顶部”  98  $('.back').removeClass('hide');  99 }else{ 100  //隐藏“返回顶部” 101  $('.back').addClass('hide'); 102 } 103  }); 104  }); 105 106 </script>
相关文章
相关标签/搜索