css_那些被忽略但有時又很強(qiáng)的選擇器

忙里偷閑的學(xué)習(xí)

在切頁面的時候,我們免不了要和css打交道笤虫,甚至說是頗深旁瘫,在HTML中,想要快速的定位元素琼蚯,除了廣為人知的.class酬凳、#id、通配符*遭庶、element元素等選擇器宁仔,css還為我們提供了更多在某些場景下,效率更高的選擇器峦睡。所以翎苫,最好自己也嘗試一下,不然就算你看過這篇隨手記榨了,也幾乎沒太大用處煎谍。即便不太容易記住,但是會留個印象阻逮,是吧~
PS:星星表示此選擇器在本文中的強(qiáng)調(diào)程度粱快。和常見度無關(guān)

CSS3選擇器 —— 元素選擇器 [element] (★★)

  1. element{}秩彤。這個會選擇所有能匹配到的element叔扼;如div{},則所有的div都會被選中漫雷。
  2. element1,element2,....{}瓜富。這個會選擇所有能匹配到element;如div, a, p{} 降盹,則所有的div与柑,a,p都會被選中蓄坏。
  3. element1 element2{} 這個會選擇父元素為element1的所有的element2子元素价捧;如div a{},則div下所有的a都會被選中涡戳。
  4. element1>element2{}结蟋。這個會選擇緊跟著element1的element2元素;如<div><p></p><p></p></div> div+p{} 渔彰,則div中的第一個p會被選中嵌屎。

CSS3選擇器 — — 屬性選擇器 [attribute](★★★★)

<a target="_blank"  title="a b c a-hello">這是一個demo1</a>
<a target="_self"  title="hey hi hello a">這是一個demo2</a>

選擇器前面也可以添加元素推正,如:a[src^='https']{ … }, .info[title*='info']宝惰。

  1. [target]{}植榕。這個會選擇帶所有帶target屬性的元素。在這里尼夺,上面兩個a標(biāo)簽都會被選中尊残。
  2. [target=_blank]{}。這個會選擇所有帶target屬性且值為_blank的元素淤堵。在這里夜郁,上面兩個a標(biāo)簽只有第一個被選中。
  3. [title~=hi]{}粘勒。這個會選擇所有帶title屬性且值包含 hi 的元素竞端。在這里,上面兩個a標(biāo)簽第二個會被選中庙睡。
  4. [title|=a]{}事富。這個會選擇所有帶title屬性且值是以a開頭的元素。在這里乘陪,上面兩個a標(biāo)簽只有第一個被選中统台。
  5. PS:上面2、3啡邑、4三個規(guī)則贱勃,屬性的值是一個單詞。而下面三個則是字符串谤逼。注意字符串和單詞是不一樣的
  6. [src^="https"]{}贵扰。這個會選擇所有帶src屬性且值是以"https"開頭的元素。在這里流部,上面兩個a標(biāo)簽只有第一個被選中戚绕。
  7. [title$="hello"]{}。這個會選擇所有帶title屬性且值是以"hello"結(jié)尾的元素枝冀。在這里舞丛,上面兩個a標(biāo)簽第一個會被選中。
  8. [title*="hi"]{}果漾。這個會選擇所有帶title屬性且值包含 "hi" 的元素球切。在這里,上面兩個a標(biāo)簽第二個會被選中绒障。

CSS3選擇器—— 偽 類/元素選擇器 [:...](★★★★★)

前言

這個是本文中的重點所在了吨凑,說實話,很多偽類/元素選擇器端盆,真的很不錯怀骤,但也真的很難在實際運用中見到费封,我想大概是因為繁瑣吧,畢竟大家都習(xí)慣了class統(tǒng)治樣式蒋伦,其他的都是不入流的小招式弓摘,233333.

就拿我舉例來說,在某個頁面的樣式中痕届,需要將后端給的數(shù)據(jù)渲染到頁面中韧献,但是這個數(shù)量是一直增加的。每當(dāng)?shù)谌齻€元素研叫,就與其他的有所區(qū)別锤窑。我得知需求后,第一個想法就是js判斷嚷炉。渊啰。∩暌伲可是這樣違背了樣式的控制權(quán)給了js

還好旁邊的前端小哥經(jīng)驗頗深绘证,且說我有什么不知道的或者覺得可以再優(yōu)化的地方,就找他哗讥。滴~好人卡嚷那。。杆煞。

他看到這個問題魏宽,搶過我的鍵盤,啪啪啪啪决乎,哦不队询,噠噠噠幾行css代碼完美的解決!

握草瑞驱,這么吊娘摔。窄坦。唤反。厲害了我的哥。

這時我也看到了 :nth-child(n)鸭津;這個css選擇器彤侍。對不起,請收下我的膝蓋逆趋,我保證我之前看過這個選擇器盏阶,但我也確定我只是看過而沒有用,就忘記了闻书。GG名斟。遂在午休時候脑慧,認(rèn)真的補(bǔ)了一遍css選擇器,咋補(bǔ)砰盐?當(dāng)然是選擇原諒她啊闷袒,然后晚飯后寫了這篇《那些被忽略但有時又很強(qiáng)的選擇器》

在這個分類,選擇器實在是太多了岩梳,詳細(xì)說明我就不做搬運工了囊骤,我就挑幾個我覺得不錯的,寫出來吧冀值,在文末會給參考文檔也物。

a標(biāo)簽相關(guān)選擇器

  1. :link 選擇所有未被訪問的鏈接。
  2. :visited 選擇所有已被訪問的鏈接列疗。
  3. :active 選擇活動鏈接滑蚯。

input相關(guān)的選擇器

  1. :enabled 選擇每個啟用的input 元素。
  2. :disabled 選擇每個禁用的 input 元素
  3. :checked 選擇每個被選中的 input 元素抵栈。
  4. :focus 獲取焦點的input元素膘魄。 這個常見的應(yīng)用場景是在表單時,對應(yīng)的輸入框樣式

常見偽類/元素選擇器

  1. :hover 鼠標(biāo)移動到上面的樣式竭讳。 這個常見的應(yīng)用場景是用作遮罩層
  2. ::before, ::after 元素的前后樣式创葡。 這個常見的應(yīng)用場景有:清除浮動、添加特定的樣式绢慢、等等
    1. PS:這里是用了兩個冒號灿渴,因為它們是偽元素,雖然說用單冒號也能生效胰舆,但是為了推動css3骚露,我們還是統(tǒng)一用雙冒號咯。
    2. 附上兩篇文章總結(jié)偽類和偽元素 ———— ——— 詳解 CSS 屬性 - 偽類和偽元素的區(qū)別
  3. :not(selector) 給非所選元素設(shè)定樣式

這里有趣的幾個有:

  1. ::first-letter : 給所選元素的首字母/中文 應(yīng)用樣式缚窿。這個選擇器可以做首字母效果棘幸。很方便,代碼如下:

    <p class="a">Oh my god</p><p class="a">我的天</p>
    <style>
      .a::first-letter{
        font-size:200%;
        color:#8a2be2;
    </style>
    
  2. ::first-line: 給所選元素的首行應(yīng)用樣式倦零。這個應(yīng)用不太多吧误续。。

  3. ::selection 選擇被用戶選取的部分扫茅。 這個應(yīng)用場景有蹋嵌,當(dāng)用戶選擇文本是,就可以使用這個選擇器葫隙,讓被選取的的文本更有趣栽烂。這個選擇器支持的樣式也有限。

  4. :target 這個就很有趣了,不過不支持ie8及以下腺办。 當(dāng)前頁面活動的錨點的樣式焰手。代碼示例:

    <style>
      :target{
        border:2px solid #ccc;
        background-color: #e5eecc;
      }
    </style>
    <a href="#id1">jump target1</a>
    <a href="#id2">jump target2</a>
    <p id="id1">target1</p>
    <p id="id2">target2</p>
    

    效果體驗如下。點擊兩個錨點怀喉,對應(yīng)的id活躍時册倒,就可以有背景。

    <a href="#id1">jump target1</a> ——— <a href="#id2">jump target2</a>
    <p id="id1">target1</p>
    <p id="id2">target2</p>

  1. 最后一個當(dāng)屬 :nth-child(n) 啦

    就像我上面說的磺送,這個選擇器用來循環(huán)選擇某個元素驻子,簡直不要太爽!

    <span>aaa</span>
    <span>bbb</span>
    <span>ccc</span>
    <style>
      span:nth-child(3n){
        background-color:green;  //原諒他啊
      }
    </style>
    

    <span class="c">aaa</span><span class="c">bbb</span><span class="c">ccc</span>

    <style>.c{display:inline-block;margin:0;border:1px solid #ccc; width:33%;text-align:center}.c:nth-child(3n){background-color:green;}</style>

寫到最后寫懵逼了估灿。

這懵逼的排版崇呵。。馅袁。域慷。原諒我吧

233333333333

參考文檔

CSS 選擇器參考手冊

原文鏈接

那些被忽略但有時又很強(qiáng)的選擇器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市汗销,隨后出現(xiàn)的幾起案子犹褒,更是在濱河造成了極大的恐慌,老刑警劉巖弛针,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叠骑,死亡現(xiàn)場離奇詭異,居然都是意外死亡削茁,警方通過查閱死者的電腦和手機(jī)宙枷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茧跋,“玉大人慰丛,你說我怎么就攤上這事●迹” “怎么了诅病?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粥烁。 經(jīng)常有香客問我贤笆,道長,這世上最難降的妖魔是什么页徐? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任苏潜,我火速辦了婚禮,結(jié)果婚禮上变勇,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好搀绣,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布飞袋。 她就那樣靜靜地躺著,像睡著了一般链患。 火紅的嫁衣襯著肌膚如雪巧鸭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天麻捻,我揣著相機(jī)與錄音纲仍,去河邊找鬼。 笑死贸毕,一個胖子當(dāng)著我的面吹牛郑叠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播明棍,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼乡革,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了摊腋?” 一聲冷哼從身側(cè)響起沸版,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎兴蒸,沒想到半個月后视粮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡橙凳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年馒铃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痕惋。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡区宇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出值戳,到底是詐尸還是另有隱情议谷,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布堕虹,位于F島的核電站卧晓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赴捞。R本人自食惡果不足惜逼裆,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赦政。 院中可真熱鬧胜宇,春花似錦耀怜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至从诲,卻和暖如春左痢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背系洛。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工俊性, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人描扯。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓定页,卻偏偏與公主長得像,于是被迫代替她去往敵國和親荆烈。 傳聞我的和親對象是個殘疾皇子拯勉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,760評論 1 92
  • 其實平時用得多的選擇器無非也就是那么幾個憔购,時間久了宫峦,許多不常用的選擇器就慢慢忘記了。為了不讓自己忘記這些選擇器玫鸟,今...
    盛夏晚清風(fēng)閱讀 1,842評論 0 5
  • 本課來自http://www.imooc.com/learn/9請不要用作商業(yè)用途导绷。 HTML5 HTML介紹 H...
    PYLON閱讀 3,234評論 0 5
  • 學(xué)習(xí)CSS的最佳網(wǎng)站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,066評論 0 1
  • 看完這本書算是幾天沒緩過來,沒錯屎飘,沉浸到故事里了妥曲。 通常看完一本書我都會寫一點點感受钦购,所得所悟那種檐盟。寫完再去...
    大強(qiáng)書齋閱讀 103評論 0 0