CSS - 選擇器的學(xué)習(xí)和排雷

  1. 首先列舉各種選擇器, 之后描述作用以及個(gè)人認(rèn)為有坑的地方
  2. 叫法這個(gè)東西并不是唯一的, 自己能記住和理解怎么回事就行,一個(gè)名字而已
  3. E,F并不單單指元素, 也可以是類,或ID
  4. 描述如果不形容的不夠通俗, 下面會(huì)有大白話, 有圖有XX
  5. 我不是專業(yè)前端但是對前端感興趣, 有不對的地方歡迎指正

(一) 元素選擇器

元素選擇器 含義
E 標(biāo)簽選擇器
E#id ID選擇器
E.class 類選擇器
* 通配選擇器

(二) 關(guān)系選擇器

關(guān)系選擇器 | 名稱 | 描述
--- |---
E F | 選中E元素的所有后代元素
E,F | 同時(shí)選中E元素和F元素
E>F | 只選中第一代后代元素(只有兒子可以, 孫子不行)
E+F | 只選中E元素同級(jí)的下一個(gè)元素
E~F | 只選中E后面的F元素


(三) 屬性選擇器

屬性選擇器 描述
E[attr] 選擇有屬性attr的E元素
E[attr='val'] 選擇有attr屬性值為val的E元素
E[attr^='val'] 選擇attr屬性值以val開頭的E元素
E[attr$='val'] 選擇attr屬性值以val結(jié)尾的E元素
E[attr*='val'] 選擇attr屬性值里含有val的E元素
E[attr~='val'] 選擇attr屬性值里有val的E元素, val必須是完整單詞
E[attr ='val'] 選擇attr屬性以val開頭的E元素, val必須是完整單詞

(四) 偽類選擇器

偽類選擇器 描述
a:link 選擇未被訪問的鏈接
a:visited 選擇已被訪問過的鏈接
a:active 選擇活動(dòng)時(shí)的鏈接(鼠標(biāo)按下到釋放之間的時(shí)候)
a:hover 選擇鼠標(biāo)放上去的時(shí)候的鏈接

以上四種偽類選擇器目前只知道適用于a標(biāo)簽

偽類選擇器 描述
E:focus 選擇獲取焦點(diǎn)的E元素
E:first-letter 選擇E元素里的首字母(漢字的話就是第一個(gè)漢字)
E:first-line 選擇E元素的第一行
E:before E元素內(nèi)部的最前面插入內(nèi)容并設(shè)置樣式
E:after E元素的內(nèi)部的最后面插入內(nèi)容并設(shè)置樣式
E:lang(val) 選擇lang屬性以val開頭的E元素
E:first-child 選擇是其父元素的第一個(gè)子元素的E元素
E:last-child 選擇是其父元素的最后一個(gè)子元素的E元素
E:nth-child(N) 選擇是其父元素的第N個(gè)子元素的E元素
E:nth-last-child(N) 選擇是其父元素的倒數(shù)第N個(gè)子元素E元素
E:only-child 選擇是其父元素唯一的子元素的E元素
E:first-of-type 選擇是其父元素的子元素里第一個(gè)E元素的E元素
E:last-of-type 選擇是其父元素的子元素里最后一個(gè)E元素的E元素
E:nth-of-type(N) 選擇是其父元素的子元素里的第N個(gè)E元素的E元素
E:nth-last-of-type(N) 選擇是其父元素的子元素里的倒數(shù)第N個(gè)E元素的E元素
:root 選擇文檔的根元素
:empty 選擇沒有子元素的
:target 選擇當(dāng)前活動(dòng)的元素
:enabled 選擇啟用的表單元素
:disabled 選擇禁用的表單元素
:checked 選擇被選中的表單元素
:not(selector) 選擇不是selector的元素
::selection 選擇鼠標(biāo)選取的時(shí)候的元素

以下說一下個(gè)人覺得在使用可能有坑的地方

  1. 注意E FE>F的區(qū)別:
  • E F: 只要F是E的后代元素(無論第幾代)都被選中
  • E>F: F必須是E的第一代子元素, 也就是說, 只有兒子會(huì)被選中, 孫子都不好使!
  1. E+F會(huì)只選擇E元素后面的第一個(gè)F元素(這個(gè)沒什么好說的, 不過W3C給的釋 義是E后面的所有F元素, 這是不正確的, 下面上圖)

    注意p2并沒有紅色的邊框
  2. E~F:選中E后面的同級(jí)元素F

  • 在li元素前面的p標(biāo)簽并沒有被選中

  • li的子元素p標(biāo)簽也沒有被選中

  • p1, p2, p3都被選中了, 說明只要在E之后的F元素就會(huì)被選中, 間隔其它的元素也無所謂

    E~F
  1. :focus: 很遺憾, 目前這個(gè)屬性在Mac OS X系統(tǒng)上的Chrome瀏覽器和Safari瀏覽器里效果并不是很好, Mac OS X系統(tǒng)上, 當(dāng)input元素獲取焦點(diǎn)的時(shí)候,系統(tǒng)會(huì)自動(dòng)給一層藍(lán)色的框, 影響了我們要的效果

  2. :first-letter: 第一個(gè)字母會(huì)被選中

  • 如果是漢字的話, 第一個(gè)漢字會(huì)被選中


    第一個(gè)字母被選中
  • 如果句子如: I'm the first line! 這樣, I后面的分號(hào)'也會(huì)被選中
    分號(hào)也被選中
  1. :first-line: 選中第一行

    first-line

  2. :before: 在元素內(nèi)部的前面插入(:after同理)

    注意控制臺(tái)里的結(jié)構(gòu)

  3. :nth-child(N): 是其父元素的第N個(gè)子元素, 注意這里的N從1開始數(shù)!

    nth-child

  4. :only-child: 其父元素的唯一子元素, 也就是說, 選中的這個(gè)元素, 它的父元素必須只能有選中的這個(gè)元素這個(gè)唯一的一個(gè)字元素, 不能再有其它子元素, 就是它的父元素不能有二胎! 它就是獨(dú)苗!

    沒有二胎的

  5. :nth-of-child(N): 這個(gè)沒什么好說的, 和:nth-child(N)類似, 注意 N也是從第一個(gè)開始數(shù), 也就是說, 想選擇第一個(gè)就寫成: :nth-of-child(1)

  6. :root: 選擇文檔的根元素, 實(shí)際就是html標(biāo)簽

  7. :empty: 選擇沒有子元素的,這個(gè)有幾個(gè)地方需要注意一下

  • 空格是不可有的
  • 換行也是不可以有的


    原效果

    有空格

    有換行
  1. :target: 選擇當(dāng)前活動(dòng)的元素, 這個(gè)選中的對象相當(dāng)于a標(biāo)簽的錨點(diǎn),只有點(diǎn)擊了鏈接以后, 這個(gè)屬性就被激活了, 然后CSS效果才會(huì)有效. 另外就是, 刷新頁面也是沒用的, 這個(gè)鏈接你訪問過, 刷新以后仍然處于激活狀態(tài), 所以樣式依然有效
![未激活的錨點(diǎn)](http://upload-images.jianshu.io/upload_images/1818988-a1fcf71e7f1426c7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
激活狀態(tài)的, 刷新仍處于有效狀態(tài)
  1. ::selection: 選擇鼠標(biāo)選取的時(shí)候的元素
> 就相當(dāng)于鼠標(biāo)選擇的時(shí)候, 比如要復(fù)制某些網(wǎng)頁上的文字的時(shí)候
> 另外就是這個(gè)必須以兩個(gè)冒號(hào)開頭, 否則無效.

(完)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市藕筋,隨后出現(xiàn)的幾起案子宝当,更是在濱河造成了極大的恐慌筐高,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件换薄,死亡現(xiàn)場離奇詭異堤舒,居然都是意外死亡椎椰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門蜘澜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來施流,“玉大人,你說我怎么就攤上這事鄙信〉纱祝” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵装诡,是天一觀的道長银受。 經(jīng)常有香客問我,道長慎王,這世上最難降的妖魔是什么蚓土? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮赖淤,結(jié)果婚禮上蜀漆,老公的妹妹穿的比我還像新娘。我一直安慰自己咱旱,他們只是感情好确丢,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吐限,像睡著了一般鲜侥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诸典,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天描函,我揣著相機(jī)與錄音,去河邊找鬼。 笑死舀寓,一個(gè)胖子當(dāng)著我的面吹牛胆数,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播互墓,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼必尼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了篡撵?” 一聲冷哼從身側(cè)響起判莉,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎育谬,沒想到半個(gè)月后券盅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡斑司,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年渗饮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宿刮。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡互站,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出僵缺,到底是詐尸還是另有隱情胡桃,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布磕潮,位于F島的核電站翠胰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏自脯。R本人自食惡果不足惜之景,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望膏潮。 院中可真熱鬧锻狗,春花似錦、人聲如沸焕参。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叠纷。三九已至刻帚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涩嚣,已是汗流浹背崇众。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工掂僵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人校摩。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓看峻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衙吩。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

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

  • 選擇器 元素選擇符 關(guān)系選擇符 屬性選擇符 偽類選擇符 偽對象選擇符 一溪窒、元素選擇符 通配選擇符 (*):選擇所有...
    云外之境閱讀 1,850評論 0 0
  • 1.class 和 id 的使用場景? 類選擇器允許以一種獨(dú)立于文檔元素的方式來指定樣式澈蚌。該選擇器可以單獨(dú)使用摹芙,也...
    草鞋弟閱讀 2,404評論 0 1
  • 基本選擇器 *{} 通配符選擇器,適用任何元素h1 標(biāo)簽選擇器宛瞄,選擇h1標(biāo)簽內(nèi)元素....
    字母31閱讀 613評論 0 0
  • 1.class 和 id 的使用場景? 當(dāng)頁面中某元素的樣式并不獨(dú)有浮禾,或與其他元素共用一個(gè)樣式時(shí),可以為該元素指定...
    Feiyu_有貓病閱讀 905評論 0 0
  • CSS選擇器結(jié)構(gòu)邏輯圖 接下來按照結(jié)構(gòu)邏輯圖具體講解各個(gè)選擇器的作用及用法份汗; 基本選擇器 基本選擇器主要有以下5類...
    FoolishFlyFox閱讀 555評論 0 8