元素的屬性,我們都知道是什麼。例如下面代碼中type和value就是input元素的屬性。屬性選擇器,顧名思義,就是通過屬性來選擇元素的一種方式。
<input type="text" value="lvye"/>
其實屬性選擇器在CSS2中已經存在了,而CSS3在CSS2的基礎上對屬性選擇器進行了擴展,新增了3個屬性選擇器。對於CSS2中的屬性選擇器,請關注即將上線的CSS進階教程。
(E,指的是元素名element;attr,指的是屬性名attribute)
CSS3新增的這3個屬性選擇器使得選擇器具有通配符的功能,有點正則表達式的感覺,大家可以繼續學習 學習網的正則表達式教程。
我們在百度文庫下載資料的時候,經常會看到文檔列表的超鏈接前面都會顯示一個文檔類型的小圖標。這是用戶體驗非常好的設計細節。這個效果的實現技術,只需要使用CSS3中的屬性選擇器就可以輕松實現了。
為了實現百度文庫的列表項圖標效果,我們使用到以下背景小圖標:
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>CSS3 屬性選擇器</title> <style type="text/css"> /*清除所有元素默認的padding和margin*/ *{padding:0;margin:0;} /*清除列表項符號*/ ul{list-style-type:none;} a { display:inline-block; font-size:12px; height:20px; line-height:20px; } /*匹配jpg文件*/ a[href$="jpg"]:before { content:url("../App_images/lesson/run_css3/1.png"); } /*匹配PDF文件*/ a[href$="pdf"]:before { content:url("../App_images/lesson/run_css3/2.png"); } /*匹配PDF文件*/ a[href$="ppt"]:before { content:url("../App_images/lesson/run_css3/3.png"); } </style> </head> <body> <ul> <li><a href="css3.jpg">這是jpg圖片</a></li> <li><a href="css3.pdf">這是pdf文件</a></li> <li><a href="css3.ppt">這是ppt文檔</a></li> </ul> </body> </html>
在浏覽器預覽效果如下:
分析:
(1)其實百度文庫列表的效果實現原理很簡單,只需要使用屬性選擇器匹配a元素中href屬性值的最後幾個字符(文件後綴名)。由於文件類型的不同,文件後綴名也會不同。根據後綴名不同,分別為不同文件類型的超鏈接添加不同圖標即可。當然實際上百度文庫列表實際代碼不像上述代碼,思想是一樣的。有興趣的同學可以查看一下百度文庫的源代碼。
(2)content屬性用於為元素插入內容,在CSS3教程中用戶界面中的“為元素添加內容content屬性”這一節我們會詳細講解到。