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>