關(guān)于css選擇器

首先先捋一捋都有哪些選擇器

1、通配符選擇器

? 舉例? ?

????? *{width:100px;}

2、元素選擇器

????(在 W3C 標(biāo)準(zhǔn)中,元素選擇器又稱(chēng)為類(lèi)型選擇器,看清楚啦是類(lèi)型選擇選器,區(qū)別于類(lèi)選擇器)

? 舉例

????h1 { color:black; }

3、類(lèi)選擇器

? ???舉例

????<h1 class="important">我是標(biāo)題</h1>

????<p class="important">我是段落</p>

????<p class="important">我是段落</p>

????<p class="important?urgent ">我是段落</p>

????.important{ color:red; }? ?

????*.important {color:red;}?表示匹配 class 屬性包含 important 的所有元素(通配符+類(lèi)選擇器)

????p.important {color:red;} 表示匹配 class 屬性包含 important 的所有 p 元素(元素+類(lèi)選擇器)

????.important .urgent{color:red;} (多類(lèi)選擇器)

4、ID選擇器

舉例

<p id="intro">This is a paragraph of introduction.</p>

#intro {font-weight:bold;}

5、后代選擇器

????后代選擇器有一個(gè)易被忽視的方面,即兩個(gè)元素之間的層次間隔可以是無(wú)限的。

? ? 舉例

????h1 em { color:red;}

6、子元素選擇器

? ??舉例

? ??h1>strong {color:red;}

7、相鄰兄弟元素選擇器

? ??舉例

????h1 + p {margin-top:50px;}

? ??選擇緊接在 h1 元素后出現(xiàn)的段落,h1 和 p 元素?fù)碛泄餐母冈?/p>

8、通用兄弟選擇器

? ??h1 ~ p {

? ? ????width:200px;

? ? ? ? height:200px;

? ? ????background-color:red;

????}

9、群組選擇器

? ??section > article,

????section > aside,

????section > div {

? ? ???? color: #f00;

? ? ???? margin-top: 10px;

? ????? background: #abcdef;

????}

10、屬性選擇器

? ??[attribute] 用于選取帶有指定屬性的元素。

????[attribute=value] 用于選取帶有指定屬性和值的元素。

????[attribute~=value] 用于選取屬性值中包含指定詞匯的元素。

????[attribute|=value] 用于選取帶有以指定值開(kāi)頭的屬性值的元素,該值必須是整個(gè)單詞。

????[attribute^=value] 匹配屬性值以指定值開(kāi)頭的每個(gè)元素。

????[attribute$=value] 匹配屬性值以指定值結(jié)尾的每個(gè)元素。

????[attribute*=value] 匹配屬性值中包含指定值的每個(gè)元素。

? ??p[class~="important"]{ color: red;}

????可以應(yīng)用樣式:


????無(wú)法應(yīng)用樣式:


11、偽類(lèi)選擇器

? ? ?A、動(dòng)態(tài)偽類(lèi) (這些偽類(lèi)并不存在HTML中,只有當(dāng)用戶(hù)和網(wǎng)站交互的時(shí)候才能體現(xiàn))

? ? ? ? ? ?錨點(diǎn)偽類(lèi)(:link[ 未訪(fǎng)問(wèn)鏈接 ]? :visited[ 已訪(fǎng)問(wèn)鏈接 ])

? ? ? ? ? ?用戶(hù)行為偽類(lèi)(:hover [ 當(dāng)鼠標(biāo)懸停 ] :active[ 正在進(jìn)行的被選擇的鏈接 ] :focus[ 規(guī)定獲得焦點(diǎn)的輸入字段的顏色 輸入框內(nèi)的顏色] )

? ? ?B、UI元素狀態(tài)偽類(lèi)(css3新增)

? ? ? ?????:enabled(表單可選中)?

? ? ? ? ????????input:enabled{}? ?

????????????:disabled(表單不可選中disabled=“disabled”)??

? ? ?? ? ? ? ????input:disabled{}

????????????:checked

? ? ? C、CSS結(jié)構(gòu)類(lèi)

?????????type類(lèi)的就是數(shù)數(shù)的時(shí)候不管什么元素都一起算個(gè)數(shù)

? ? ? ? :first-child【父元素的首個(gè)以及最后一個(gè)子元素】

? ? ? ? ? ? ????section > div:first-child {color: #f00;}

? ? ? ? ? ????? 配合前面的元素去寫(xiě) 否則很容易亂

? ? ? ? ? ? ? ? :last-child、

? ? ? ? ? ? ? ? 某元素的最后一個(gè)元素

? ? ? ? :nth-child ( n )

? ? ? ? ? ? 無(wú)論元素類(lèi)型 ,匹配屬于其父元素的第n個(gè)元素

? ? ? ? (2n)even偶數(shù) (2n+1)odd奇數(shù)

? ? ? ? :nth-last-child( )

? ? ? ? ? ? 無(wú)論元素類(lèi)型 ,從最后一個(gè)子元素開(kāi)始計(jì)數(shù),且從1開(kāi)始計(jì)數(shù)

? ? ? ? ?:nth-of-type( )

? ? ? ? ? ? 匹配屬于父元素的特定類(lèi)型的第n個(gè)子元素的每個(gè)元素

????????????????【如果指定div? 那就只數(shù)div? 不管還有什么元素】

? ? ? ? ? :nth-last-of-type( )

? ? ? ? ? ? ? ? 如果指定div? 那就只數(shù)div? 不管還有什么元素 倒數(shù)的哦

? ? ? ? ? :first-of-type、:last-of-type(正數(shù))

? ? ? ? ? :only-child、

? ? ? ? ? ? 匹配屬于其父元素唯一子元素的每個(gè)元素 同一個(gè)父元素中有其他兄弟元素也不行

? ? ? ? ? ?:only-of-type、

? ? ? ? ? ? 有兄弟元素也沒(méi)關(guān)系啦? 只要父元素里指定的元素只有一個(gè)就好啦

? ? ? ? ????????:empty

? ? ? ? ? ? ? ? ????div:empty {background: #f00; }

? ? ? ? ? ? ? ? 把空的找出來(lái) 就可以給樣式啦

????????否定選擇器,被選中的 執(zhí)行

? ? ? ? ? ? ? ? 舉例

? ? ? ? ? ? ? ? 導(dǎo)航中不要最后一條線(xiàn)啦

? ? ? ? ? ? nav > a:not(:last-of-type) { border-right: 1px solid red; }

? ?12、偽元素 (偽造出來(lái)的,在html中找不到)兩個(gè)冒號(hào)是為區(qū)別選擇器

? ? ? ? ? ::first-line 文本首行

? ? ? ? ? ? div::first-line {

? ? ? ? ? ? ? ? ? ? color: #f00;

? ? ? ? ? ? ? ? ? ? font-weight: bold;

? ? ? ? ? ? ? ? ? ? }? ?

? ? ? ? ? ?::first-letter 文本首字母

? ? ? ? ? ? div::first-letter {

? ? ? ? ? ? ? ? ? ? ? ? color: #f00;

? ? ? ? ? ? ? ? ? ? ? ? font-size: 24px;

? ? ? ? ? ? ? ? ? ? ? ? font-weight: bold;

? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ::before 元素前插入內(nèi)容 行內(nèi)元素

? ? ? ? ? ? div::before {

? ? ? ? ? ? ? ? ? ? ? ? content: "我在內(nèi)容的前面";

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ?::after 元素前插入內(nèi)容? 行內(nèi)元素? 多用于清除浮動(dòng)

? ? ? ? ? ? div::after {

? ? ? ? ? ? ? ? ? ? content: "我在內(nèi)容的后面";

? ? ? ? ? ? ? ? ? ? ? ? ? ? }


? ? ? ????????::seletion? 控制被選中的樣式

? ? ? ? ? ? div::selection {

? ? ? ? ? ? ? ? ? ? background: red;

? ? ? ? ? ? ? ? ? ? color: #ff0;

? ? ? ? ? ? ? ? ? ? }



選擇器權(quán)重問(wèn)題

?? ?? ?() 行內(nèi)樣式1000?> ID選擇器 100 > 類(lèi)、屬性選擇器和偽類(lèi)選擇器10? >元素和偽元素 1 > 通配符選擇器。

帶有上下文關(guān)系的選擇器比單純的元素選擇器權(quán)重更高!

后面會(huì)覆蓋前面的有沖突的選擇器!

無(wú)論多少個(gè)元素組成的選擇器 都沒(méi)有一個(gè)class權(quán)重高!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1、class和id的使用場(chǎng)景分別是什么? 首先,一個(gè)HTML文件中class名字可以有多個(gè)相同的,但是id的名字...
    李博洋li閱讀 951評(píng)論 0 1
  • class和id的使用場(chǎng)景? class為一類(lèi)的元素命名,所有有共同特性的元素都可以用同一class進(jìn)行分類(lèi);id...
    LeeoZz閱讀 397評(píng)論 0 0
  • class 和 id 的使用場(chǎng)景? class 和 id 有什么區(qū)別 class是設(shè)置標(biāo)簽的類(lèi), class屬性用...
    蕭雪圣閱讀 294評(píng)論 0 0
  • 1.CSS 元素選擇器 最常見(jiàn)的 CSS 選擇器是元素選擇器。換句話(huà)說(shuō),文檔的元素就是最基本的選擇器。如果設(shè)置 H...
    饑人谷_小侯閱讀 885評(píng)論 0 1
  • 學(xué)習(xí)CSS的最佳網(wǎng)站沒(méi)有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,100評(píng)論 0 1