CSS屬性選擇器高級用法及選擇器優先級問題

jessie109 8年前發布 | 9K 次閱讀 CSS 前端技術

來自: http://my.oschina.net/sallency/blog/605733


CSS選擇器之屬性選擇器

1:[attr] 存在此屬性即可
2:[attr = 'attr_value'] 屬性值為給定值即可
3:[attr ^= 'attr_value'] attr屬性鍵以container開頭 即便是字符串匹配
<style type="text/css">
    div[data-type ^= 'container'] {
        background-color : #000;
    }
</style>
<div data-type="container master">
    開頭存在 container 匹配成功
</div>

<div data-type="containernosensestr">
    開頭存在 container 匹配成功
</div>

<div data-type="master container">
    不在開頭 匹配失敗
</div>
4:[attr *= 'attr_value'] attr屬性鍵中存在給定的值即可 即便是字符串匹配
<style type="text/css">
    div[data-type *= 'container'] {
        background-color : #00f;
    }
</style>
<div data-type="nosensestrcontainernosensestr">
    只要鍵值中有給定的值即可匹配成功
</div>
5:[attr $= 'attr_value'] attr屬性鍵結尾匹配 即便是字符串匹配
<style type="text/css">
    div[data-type $= 'container'] {
        background-color : #0ff;
    }
</style>
<div data-type="container master">
    結尾不存在 失敗
</div>

<div data-type="nosensestrcontainer">
    結尾存在 成功
</div>

<div data-type="master container">
    結尾存在 成功
</div>
6:[attr ~= 'attr_value'] attr屬性鍵值以空格分隔 其中存在給定的值即可匹配成功
<style type="text/css">
    div[data-type ~= 'container'] {
        background-color : #f00;
    }
</style>
<div data-type="container master">
    空格拆分 存在container 匹配成功
</div>

<div data-type="containernosensestr">
    不存在 失敗
</div>

<div data-type="master container">
    空格拆分 存在container 匹配成功
</div>
7:[attr |= 'attr_value'] attr屬性鍵值以 "-" 分隔 且拆分得到的第一個值為給給定屬性值 匹配成功
<style type="text/css">
    div[data-type |= 'container'] {
        background-color : #f0f;
    }
</style>

<div data-type="container-master">
    -拆分 第一個值為container 匹配成功
</div>

<div data-type="containernosensestr">
    不存在 失敗
</div>

<div data-type="master-container">
    -拆分 第一個值不是container 匹配失敗
</div>

CSS選擇器之優先級

ID選擇器 100 類選擇器 10 元素選擇器 1

大家都知道 內聯  >  內部  > 外部 而且樣式內外樣式表會因定義或引入的先后順序后者覆蓋前者

但樣式選擇器的優先級并不會因定義的先后順序而發生覆蓋

#container .article p {
    background-color:#000;
    font-size:14px;/* 無效 后面的 important 會優先于一切選擇器的定義*/
}
//并不能覆蓋前者 優先級低于前者
.article p {
    background-color:#fff;
    font-size:14px;/* 無效 后面的 important 會優先于一切選擇器的定義*/
}
//同上
p {
    background-color:#ccc;
    font-size:16px!important;/*important 會優先于一切選擇器的定義*/
}

但以上都會被指定為 important 屬性覆蓋掉


 本文由用戶 jessie109 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!