CSS選擇器

1.class 和 id 的使用場景?

class是類,用于CSS,可以多個HTML標簽復用。id是HTML標簽的唯一身份證,具有唯一性,只允許出現一次,可以用于CSS,也可以用于JS。但一般在實際的開發中,class用于CSS,id則用于JS。

2.CSS選擇器常見的有幾種?

  • id選擇器,HTML: <div id="head"></div>,CSS: #head{color: red;}
  • 類選擇器,HTML:<div class="head"></div>,CSS: .head{color: red;}
  • 標簽選擇器,HTML:<div id="head"></div>,CSS: div{color: red;}
  • 偽類選擇器,HTML:<div class="head"></div>
    CSS:
    .head::before{color: red;},在.head上方增加一個行內元素。
    .head::after{color: red;},在.head下方增加一個行內元素。
    .head:first-child{color: red;},class為head的元素的父元素下的第一個子元素。
    .head:last-child{color: red;},class為head的元素的父元素下的最后一個子元素。
    .head:first-of-type{color: red;},class為head的元素的父元素下的同種類型元素中的第一個子元素。
    .head:last-of-type{color: red;},class為head的元素的父元素下的同種類型元素中的最后一個子元素。
    .head:nth(n)-child{color: red;},class為head的元素的父元素下的第n個子元素。
    所以其實這里的child代表后代,type代表標簽類型。
  • 組合選擇器,HTML:
<div>
        <p>123</p>
        <section><p>456</p></section>
    </div>

CSS:div p{color: red;},這是所有后代選擇器,中間以一個空格連接,凡是div標簽后代中的P標簽,都會被選擇,所以這里的123和456都會變紅。div>p{color: red;},這是直接后代選擇器,使用 " > " 連接,只有div標簽下的第一代p標簽才會被選中,所以這里只有123會變紅。

3.選擇器的優先級是怎樣的?對于復雜場景如何計算優先級?

優先級順序,從上到下,依次遞減:
1.!important
2.內聯樣式
3.id選擇器
4.class選擇器
5.標簽選擇器
6.偽類選擇器
在復雜場景下,一般先分別計算各個選擇器的優先級權重,然后相加得出和,權重值之和越大,優先級越高。

4.a:link, a:hover, a:active, a:visited 的順序是怎樣的? 為什么?

順序依次為a:link > a:hover > a:active > a:visited。
a:link為標簽初始狀態,未經過任何操作。a:hover是光標經過標簽時的狀態。a:active是鼠標點擊標簽并且還未松開點擊按鍵時的狀態 。a:visited是點擊標簽之后,松開按鍵,然后光標離開標簽之后的狀態。可以使用love hate的方式來記憶,用愛包裹恨,即L(H A)V.

5.以下選擇器分別是什么意思?

選擇器.png
  • 1為選擇id為header的標簽。
  • 2為選擇class為header的標簽。
  • 3為選擇class為header并且后代class為logo的標簽。
  • 4為選擇class為header或者class為mobile的標簽,因為 “ . ” 和 “ # ”也可以作為分隔符。
  • 5其實是將兩個組合選擇器的縮寫形式,他們共用一個樣式,選擇class為header并且后代元素為p標簽的標簽,另外一個是選擇class為header并且后代元素為h3標簽的標簽。
  • 6為選擇id為header并且后代元素的class為nav的標簽的直系后代為li標簽的標簽。
  • 7為選擇id為header并且后代元素為a標簽的標簽,當鼠標光標經過該標簽時,執行其中的樣式。
  • 8為選擇id為header并且后代元素的class為logo的標簽的所有兄弟p標簽。
  • 9為選擇id為header并且后代元素為input標簽并且該標簽的屬性type=text。
我所知道的偽類選擇器如下:
  • ::before,相當于在標簽的上方加一個span。
  • ::after,相當于在標簽的下方加一個span。
  • ::selection,被光標選擇的元素。
  • :first-child,滿足冒號左側條件下的元素的父元素下的第一個滿足冒號左側條件的子元素。
  • :last-child,滿足冒號左側條件下的元素的父元素下的最后一個滿足冒號左側條件的子元素。
  • :first-of-type,滿足冒號左側條件下的元素的父元素下的同種類型元素(意思就是同一種HTML標簽)中的第一個滿足冒號左側條件的子元素。
  • :last-of-type,滿足冒號左側條件下的元素的父元素下的同種類型元素(意思就是同一種HTML標簽)中的最后一個滿足冒號左側條件的子元素。
  • :nth(n)-of-child,滿足冒號左側條件下的元素的父元素下的第n個(n其實是個表達式,也可改成其他的表達式,比如2n+1)滿足冒號左側條件的子元素。
  • :nth(n)-of-type,滿足冒號左側條件下的元素的父元素下的同種類型元素(意思就是同一種HTML標簽)中的第n個(n其實是個表達式,也可改成其他的表達式,比如2n+1)滿足冒號左側條件的子元素。
  • 還有a標簽所特有的偽類選擇器:上面已經答過了,這里就不再過多重復了。
div:first-child、div:first-of-type、div :first-child和div :first-of-type的作用和區別 (注意空格的作用)
  • 第一個為div標簽的父元素下的第一個div標簽。
  • 第二個為div標簽的父元素下的同種類型標簽下的第一個類型為div標簽的元素。
  • 第三個為div標簽的后代子元素中的父元素下的第一個子元素。
  • 第四個為div標簽的后代子元素的父元素下的同種類型標簽下的第一個子元素。
運行如下代碼,解析下輸出樣式的原因。
代碼.png

aa字體變紅,背景色變藍。
bb僅背景色變藍。
ccc無變化。
分析如下:
首先第一個樣式,

.item1:first-child{
    color: red;
}

找到class為item1的元素的父元素,然后在該父元素下尋找第一個子元素,所以aa字體變紅。
然后第二個樣式,

.item1:first-of-type{
    background: blue;
}

同樣的,找到class為item1的元素的父元素,然后在該父元素下的同一種標簽中,尋找第一個子元素,發現p標簽的第一個,h3標簽的第一個滿足條件,所以aa,bb的背景色變藍。
最后,the ending。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容

  • 1.class 和 id 的使用場景? class:類選擇器,一個標簽可以有多個類且同一個類可以用到不同的標簽上,...
    饑人谷_兔子君閱讀 1,206評論 0 0
  • 1.CSS 元素選擇器 最常見的 CSS 選擇器是元素選擇器。換句話說,文檔的元素就是最基本的選擇器。如果設置 H...
    饑人谷_小侯閱讀 872評論 0 1
  • 1.class 和 id 的使用場景? 兩者都能選取DOM節點并給DOM節點添加樣式,但是W3C標準里規定頁面中只...
    饑人谷_米彌輪閱讀 409評論 0 1
  • 轉載自牢記31種CSS選擇器用法 1 * 星號選擇器用于選取頁面中的所有元素,可用于快速清除所有元素的 margi...
    Icestains閱讀 1,252評論 0 1
  • 30歲生日前,用100天時間流浪,紀念這一世的下一段旅程的開始…… 看著很是完美,羨慕,卻不知內心雜亂的隨時可以撕...
    Lisa菇涼閱讀 165評論 0 0