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>
相關文章
相關標籤/搜索