css選擇器

1. class 和 id 的使用場景?

對于CSS而言,id和class都是選擇器。
1. ID具有唯一性,Class具有普遍性。
2. ID是唯一的,所以盡量在結構外圍使用,通常用于頁面布局。
3. Class是可重復的,所以盡量在結構內部使用,通常用于樣式定義。
4. ID的樣式優先級高于Class。

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

CSS常用幾種選擇器有:ID選擇器,類選擇器,元素選擇器,子選擇器,后代選擇器,偽類選擇器,屬性選擇器等。這些選擇器的常用表示方式是:
ID選擇器:#container {}
類選擇器:.box{}
元素選擇器:p {}
子選擇器:ul > li {}
后代選擇器:div p {}
偽類選擇器:a:visited {}
屬性選擇器:input[type="text"] {}

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

在屬性后面使用 !important 會覆蓋頁面內任何位置定義的元素樣式。
作為style屬性寫在元素內的樣式
id選擇器
類選擇器
標簽選擇器
通配符選擇器
瀏覽器自定義或繼承

分4個等級的定義如下:
第一等:代表內聯樣式,如: style=””,權值為1000。
第二等:代表ID選擇器,如:#content,權值為100。
第三等:代表類,偽類和屬性選擇器,如.content,權值為10。
第四等:代表類型選擇器和偽元素選擇器,如div p,權值為1。

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

link:連接平常的狀態 active:連接被按下的時候 visited:連接被訪問過之后 hover:鼠標放到連接上的時候

a:link{text-decoration:none ; color:#c00 ;}
a:visited {text-decoration:none ; color:#c30 ;}
a:hover {text-decoration:underline ; color:#f60 ;}
a:active {text-decoration:none ; color:#F90 ;} 

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

#header{ } id為header的元素
.header{ } class為header的元素
.header .logo{ } class為header 子元素中 class為logo的元素
.header.mobile{ } class同時包含header和mobile的元素
.header p, .header h3{ } class為header元素中的p標簽和h3標簽
#header .nav>li{ } id為header的class為nav元素的直接子元素為li的標簽
#header a:hover{ } id為header元素中的a標簽的hover狀態
#header .logo~p{ } id為header下 class為logo標簽之后所有的p標簽
#header input[type=“text”]{ } id為header的后代中,input標簽中,屬性type的值為"text"的元素集合

6. 列出你知道的偽類和偽元素

偽類選擇器
:first-child 選擇元素的第一個子元素
:link  指示作為超鏈接(即有一個href屬性)并指向一個未訪問地址的所有錨
:visited  指示作為已訪問地址超鏈接的所有的錨
:hover  指示鼠標指針停留在那個元素上
:active  指示被用戶輸入激活的元素
:focus   可以接受鍵盤輸入或者能以某種方式激活的元素
:lang()  根據元素的語言來選擇
CSS3新增:
E:not(s)  匹配不含有s選擇符的元素E
E:root  匹配E元素在文檔的根元素
E:last-child  匹配父元素的最后一個子元素E
E:only-child  匹配父元素僅有的一個子元素E
E:nth-child(n)  匹配父元素的第n個子元素E
E:nth-last-child(n)  匹配父元素的倒數第n個子元素E
E:first-of-type  匹配同類型中的第一個同級兄弟元素E
E:last-of-type  匹配同類型中的最后一個同級兄弟元素E
E:only-of-type 匹配同類型中的唯一的一個同級兄弟元素E
E:nth-of-type(n)  匹配同類型中的第n個同級兄弟元素E
E:nth-last-of-type(n)  匹配同類型中的倒數第n個同級兄弟元素E
E:empty  匹配沒有任何子元素(包括text節點)的元素E
E:checked  匹配用戶界面上處于選中狀態的元素E。(用于input type為radio與checkbox時)
E:enabled  匹配用戶界面上處于可用狀態的元素E
E:disabled  匹配用戶界面上處于禁用狀態的元素E
E:target  匹配相關URL指向的E元素

:first-child、:link和:visited是靜態偽類,:focus、:hover和:active是動態偽類

結合偽類: 如: a:link:hover = a:hover:link 順序并不重要,但是不要把互斥的偽類結合在一起使用。如 a:link:vistited沒有任何意義

偽元素
:first-letter  設置首字母樣式
:first-line  設置第一行樣式
:before  設置之前
:after  設置之后
CSS3新增:
::placeholder
::selection

在CSS3中為了和偽類進行區分,寫法為::first-letter、::first-line、::first-line、::first-line
:first-letter和:first-line 使用都是有限制的。另外,所有偽元素都必須放在出現該偽元素的選擇器的最后面。

7. div:first-child和div:first-of-type的作用和區別

:first-child選擇器是css2中定義的選擇器,從字面意思上來看也很好理解,就是第一個子元素

<div>
    <p>第一個子元素</p>
    <h2>第二個子元素</h2>
    <span>第三個子元素</span>
    <span>第四個子元素</span>
</div>

p:first-child  匹配到的是p元素,因為p元素是div的第一個子元素;
h1:first-child  匹配不到任何元素,因為在這里h1是div的第二個子元素,而不是第一個;
span:first-child  匹配不到任何元素,因為在這里兩個span元素都不是div的第一個子元素;
:first-child  匹配到的是p元素,因為在這里div的第一個子元素就是p。

在css3中又定義了:first-of-type這個選擇器

<div>
    <p>第一個子元素</p>
    <h2>第二個子元素</h2>
    <span>第三個子元素</span>
    <span>第四個子元素</span>
</div>

p:first-of-type  匹配到的是p元素,因為p是div的所有為p的子元素中的第一個,事實上這里也只有一個為p的子元素;
h1:first-of-type  匹配到的是h1元素,因為h1是div的所有為h1的子元素中的第一個,事實上這里也只有一個為h1的子元素;
span:first-of-type  匹配到的是第三個子元素span。這里div有兩個為span的子元素,匹配到的是第一個。
:first-of-type  匹配到的是p元素

所以

:first-child 匹配的是某父元素的第一個子元素,可以說是結構上的第一個子元素。
:first-of-type 匹配的是該類型的第一個,類型是指什么呢,就是冒號前面匹配到的東西,比如 p:first-of-type,就是指所有p元素中的第一個。這里不再限制是第一個子元素了,只要是該類型元素的第一個就行了,當然這些元素的范圍都是屬于同一級的,也就是同輩的

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

推薦閱讀更多精彩內容

  • 其實平時用得多的選擇器無非也就是那么幾個,時間久了,許多不常用的選擇器就慢慢忘記了。為了不讓自己忘記這些選擇器,今...
    盛夏晚清風閱讀 1,861評論 0 5
  • CSS選擇器結構邏輯圖 接下來按照結構邏輯圖具體講解各個選擇器的作用及用法; 基本選擇器 基本選擇器主要有以下5類...
    FoolishFlyFox閱讀 574評論 0 8
  • 一、CSS選擇器常見的有幾種? 基本選擇器 通配選擇器~選擇文檔中所有的html元素,用一個*表示 元素選擇器~選...
    dengpan閱讀 976評論 0 3
  • 轉載自牢記31種CSS選擇器用法 1 * 星號選擇器用于選取頁面中的所有元素,可用于快速清除所有元素的 margi...
    Icestains閱讀 1,262評論 0 1
  • 1.class 和 id 的使用場景? 類選擇器允許以一種獨立于文檔元素的方式來指定樣式。該選擇器可以單獨使用,也...
    草鞋弟閱讀 2,446評論 0 1