僞類和僞元素用起來很是的方便,在查閱資料及測試後整理下來。php
1、僞類css
CSS 僞類用於向某些選擇器添加特殊的效果。僞類對元素進行分類是基於特徵(characteristics)而不是它們的名字、屬性或者內容;原則上特徵是不能夠從文檔樹上推斷獲得的。html
僞類即 CSS 內植類,CSS 內部自己賦予它一些特性和功能,也就是不用再class=...或id=...就能夠用僞類獲取元素,固然也能夠改變它的部分屬性(如: a:link{color:#FF0000;})。前端
屬性 | 描述 | 通俗說明 | CSS |
---|---|---|---|
:active | 向被激活的元素添加樣式。 | 用鼠標點擊時,元素增長特效,鼠標鬆開時,特效消失。多用在按鈕的點擊上。 | 1 |
:focus | 向擁有鍵盤輸入焦點的元素添加樣式。 | 元素得到焦點時,元素增長特效,失去焦點時,特效消失。多用在讓點擊以後的元素一直擁有某些樣式,active作不到,能夠用在<input>標籤上。 | 2 |
:hover | 當鼠標懸浮在元素上方時,向元素添加樣式。 | 當鼠標懸浮在元素上方時,增長特效,鼠標離開元素時,特效消失。常與cursor屬性同時使用,當屬性值爲pointer時,光標位於元素上方時會變成手型。cursor還有url屬性,其爲設置圖片地址。 | 1 |
:link | 向未被訪問的連接添加樣式。 | 連接點擊以前添加某些樣式。 | 1 |
:visited | 向已被訪問的連接添加樣式。 | 連接點擊以後添加某些樣式。 | 1 |
:first-child | 向元素的第一個子元素添加樣式。 | 對某元素的第一個子元素添加樣式,經常使用在ol,ul下面的li,或者tr下面的td或th上等。 | 2 |
:lang | 向帶有指定 lang 屬性的元素添加樣式。 | 2 |
測試Demo源碼,以下:git
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> <style type="text/css"> div{ line-height:30px; } #divActive:active{ background-color:red; } #divHover:hover{ background-color:red; cursor:pointer; } #txtFocus:focus{ background-color:red; } div ul li:first-child{ background-color:red; } div a:link{ background-color:red; } div a:visited{ background-color:blue; } div a:visited{ background-color:blue; } div input:lang(fr){ background-color:red; } </style> </head> <body> <div id="divActive">測試Active</div> <div id="divHover">測試Hover</div> <div id="divFocus"><input id="txtFocus" type="text"></div> <div id="divFirst-child"> <ul> <li>老大</li> <li>老二</li> <li>老三</li> </ul> </div> <div><a href="#">超連接</a></div> <div> <input id="text" type="text" value="文本" lang="fr" /> </div> </body> </html>
2、僞元素github
屬性 | 描述 | 通俗說明 | CSS |
---|---|---|---|
:first-letter | 向文本的第一個字母添加特殊樣式。 | 1 | |
:first-line | 向文本的首行添加特殊樣式。 | 1 | |
:before | 在元素以前添加內容。 | 在元素文檔流前添加內容。經常使用於隱形的提示信息內容。 | 2 |
:after | 在元素以後添加內容。 | 在元素文檔流後添加內容。經常使用於隱形的提示信息內容。 | 2 |
注意:僞元素若是沒有設置「content」屬性,僞元素是無用的。若是不想設置內容,能夠設置content屬性爲空引用 content:""。插入的內容在頁面的源碼裏是不可見的,只能在css裏可見。CSS繼承規則適用於插入的元素,插入的內容將是有關聯的目標元素的子元素,但它會被置於這個元素的任何內容的「前」或「後」。web
以:before爲例測試Demo代碼,以下:瀏覽器
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <meta charset="utf-8" /> <style type="text/css"> input{ display: block; } body *:before{ content: "before"; color: red; } </style> </head> <body> <h1>HTML控件僞元素支持測試</h1> <input id="button" type="button" value="普通按鈕" /> <input id="reset" type="reset" value="重置" /> <input id="submit" type="submit" value="提交" /> <input id="text" type="text" value="文本" lang="fr" /> <input id="file" type="file" value="文件" /> <input id="password" type="password" /> <input id="checkbox" type="checkbox" /> <input id="radioY" type="radio" name="sel" value="Yes" /> <input id="radioN" type="radio" name="sel" value="No" /> <div><input id="cbN" type="radio" name="sel" /></div> <input id="hid" type="hidden" /> <textarea id="txt" rows="2" cols="20"></textarea> <table style="width:100%;"><tr><td> </td><td> </td><td> </td></tr></table> <img id="img" src="" alt="圖片" /> <select id="sel"> <option>請選擇</option> </select> <hr /> <div id="div"></div> </body> </html>
一、插入非文本內容函數
咱們能夠把屬性的值置爲空字符串或是插入文本內容。還有以下幾種非文本內容,以下:工具
[1]、能夠包含一個指向一個圖像的URL,就像在css裏包含一個背景圖像同樣作你能作的
[2]、固然,你能夠包含一個Data URI代替圖像引用,正如你能夠用css背景同樣。
[3]、能夠選擇ATRR(X)中的函數的形式。此功能,根據規範,「把X屬性的值以字符串的形式返回」,以下:
a:after { content: attr(href); }
attr()函數的功能:它獲得特定屬性的值並把它做爲插入的文本成爲一個僞元素。
顯示結果:頁面上的每個<a>元素的href值當即被放置在每一個各自的<a>元素的後面。在文檔被打印時,它能夠用做一個包含全部URl的打印樣式表。
能夠用這個函數去獲取元素的title屬性,或者甚至是microdata的值。固然,並非全部的例子都符合本身的實際,但根據不一樣的狀況,一個特定的屬性值做爲一個僞元素能夠是實際的。然而,獲取title或者圖像的alt的值並做爲實際的僞元素顯示在頁面上是不可能的。
注意:
僞元素必須是被應用元素的子元素。<img>,是void(或 空元素),沒有子元素,因此它在此不可用,一樣也適用於其餘空元素,例如:<input>。