1. 程式人生 > >css3選擇器--基本選擇器,層次選擇器,屬性選擇器

css3選擇器--基本選擇器,層次選擇器,屬性選擇器

        對HTML頁面中的元素使用CSS實現一對一,一對多或者多對一的控制,要用到CSS選擇器。在大篇CSS程式碼中,並沒有說明什麼樣式服務於什麼元素,只是在元素中使用了class屬性。而class屬性本身沒有語義,它純粹是用來為CSS服務的,屬於多餘屬性,並沒把樣式和元素繫結起來,一個CSS類選擇器,文字框可以使用,下拉框也可以使用,甚至按鈕也可以使用,這樣其實非常混亂, 修改時就不方便,所以CSS3中提倡使用選擇器來將樣式與元素直接繫結起來,這樣的話,在樣式中什麼樣式與什麼元素相匹配就會變得一目瞭然,修改起來也很方便。不僅如此,通過css3選擇器我們還可以實現各種複雜的指定, 同時也能大量減少樣式表的程式碼書寫量,最終書寫出來的樣式表也會變得簡潔明瞭。

基本選擇器

說明

*

通用元素選擇器,匹配任何元素

E

標籤選擇器,匹配所有使用E標籤(所有HTML元素)的元素

.info

class選擇器,匹配所有class屬性中包含info的元素

#footer

id選擇器,匹配所有id屬性等於footer的元素

selector1,selector2

群組選擇器,將每一個選擇器匹配的元素集合並

層次選擇器

層次選擇器
型別 功能描述

E    F
後代選擇器 選擇匹配的F元素,且F元素被包含在匹配的E元素內

E > F
子選擇器 選擇匹配的F元素,且F元素是E元素的子元素

E + F
相鄰兄弟選擇器 選擇匹配的F元素,且F元素是E元素後面緊鄰的兄弟元素

E ~ F
通用選擇器 選擇匹配的F元素,且F元素是E元素後面的所有兄弟元素

屬性選擇器

屬性選擇器 功能描述
E[attr] 選中具有attr屬性的E元素
E[attr=val] 選中具有attr屬性,並且屬性值為val的E元素
E[attr|=val] 選中具有attr屬性,並且屬性值為val或以val-開頭
E[attr~=val] 選中具有attr屬性,並且屬性值包含val的E元素,該屬性值必須以空格隔開
E[attr*=val]萬用字元 選中具有attr屬性,並且屬性值包含val的E元素
E[attr^=val]起始符 選中具有attr屬性,並且屬性值以val開始的E元素
E[attr$=val]結束符 選中具有attr屬性,並且屬性值以val結束的E元素


具體例項分析:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文件</title>
<style>

*{margin: 0;padding: 0;}
p{height:30px;border:1px solid #000;margin-bottom: 2px;}

</style>
</head>
<body>
    <p cat="leold">leo</p>
    <p cat="dp">杜鵬</p>
    <p cat="zM">子鼠</p>
    <p cat="xm">小美</p>    
    <p cat="leo old">leo</p>
    <p cat="old dp">杜鵬</p>
    <p cat="zM">子鼠</p>
    <p cat="xm">小美</p>
</body>
</html>
上面的程式碼結構執行後 的 效果顯示如下:


選中具有 cat  屬性的 P元素,並將其背景色設定為紅色, 就需要用到 CSS3的屬性選擇器, 程式碼如下:

選中選中具有 cat 屬性,並且屬性值包含 old 的P元素,屬性值包含有 old這個單獨的單詞   並且old必須是連寫的不能拆開   程式碼及效果圖如下:

選中具有 cat 屬性,並且屬性值包含 old 的P元素, 程式碼及效果圖如下: