鍍金池/ 問答/HTML/ css 選擇器表達(dá)式的計(jì)算順序是怎樣的

css 選擇器表達(dá)式的計(jì)算順序是怎樣的

請(qǐng)?jiān)徫沂褂谩癱ss選擇器表達(dá)式”這個(gè)詞,因?yàn)槲乙膊恢肋@個(gè)應(yīng)該怎么稱呼。
我想達(dá)到下面的效果不知道僅憑css選擇器能不能實(shí)現(xiàn)

(.a+ div)>em {
    color :#ffffff;
}

文字描述就是class="a"后面的兄弟div元素內(nèi)部的em子元素。
總之超過3個(gè)部件的css表達(dá)式寫起來總是迷糊,不知道有沒有類似與各類表達(dá)式中的“運(yùn)算符優(yōu)先級(jí)”這種東西,還是單純的只能從左到右這種的。

有前輩對(duì)使用場(chǎng)景提出了質(zhì)疑,其實(shí)是這樣的
使用場(chǎng)景

原本就是三個(gè)input由插件自動(dòng)生成的開關(guān)?,F(xiàn)在是f的文字顏色不太合適。

另外我提問的核心還是想題目所描述的,詢問這個(gè)(類似)表達(dá)式是否有運(yùn)算順序,單講這個(gè)活本身其實(shí)是無所謂的,告訴“改不了”也不是不行。所以希望從解決問題,而不是繞過問題來討論。

回答
編輯回答
妖妖

div直接給個(gè)class不好嗎...em直接給個(gè)class也不好嗎...


單條css語句解析是從右向左的。

(.a+ div)>em {
    color :#ffffff;
}

可以理解為:
1、找到所有 em
2、找到所有 em 中 em的父元素是(.a+div)的 em

而css選擇器有不同的權(quán)重劃分。
權(quán)重:important > id > class/偽類/屬性 > 元素/偽元素 > 通配符

相同目標(biāo) 可以有多條css語句表示,每條css語句的權(quán)重是語句中所有選擇器權(quán)重之和,權(quán)重越大優(yōu)先級(jí)越高,如果權(quán)重相等后者會(huì)覆蓋前者。

<p class="red">class權(quán)重高。我的顏色是粉色不是紅色<p>

p {
   color: red;
}
.red {
   color: pink;
}

可以依靠多條css語句的不同權(quán)重來表現(xiàn)樣式。

2017年1月7日 11:17
編輯回答
瘋浪

首先感謝大佬回答,原來解析順序是從右到左。
我又重新看了下代碼,其實(shí)加了括號(hào)反而會(huì)不識(shí)別,之前沒加括號(hào)時(shí),之所以不好使,是因?yàn)橛昧薸mportant。
我這也加個(gè)important 就好了。
所以下面這種其實(shí)就可以了

.a+ div>em {
    color :#ffffff;
}
2018年3月5日 19:44