盤點那些你可能不知道的css選擇器

any-link
    之所以要選擇先說這個,是因爲前段時間在面試的時候遇到個奇葩問題,二面面試官問我,怎麼選中頁面上所有的帶有href屬性的a標籤?我當時懵逼。。答:如果給我jQuery,我可以做到。。我tm真機智。。後來看到了一篇文章在做慕課網的測試題的時候遇到了has選擇器的問題,於是去百度發現了一篇整理了一些不常用的css選擇器的文章,又在這片文章裏面發現這any-link這個選擇器,便回想到了當時那位面試官問我的那個問題。。這不就是答案嘛,受此啓發,決定水一篇博文來整理盤點一些不常用的css選擇器。
    另外說一句,坦率地講,這家公司應該算是目前來說給我面試體驗最好的一家,面試官十分友好,問的問題深入淺出很有水平。很幸運我也通過了此次面試,但因爲種種原因吧,最後並沒有去,小小遺憾。江湖再見~
    首先本文參考了這篇文章:https://www.cnblogs.com/xyzhanjiang/p/5570726.html

符號類
    +
        相鄰元素選擇器
    ~
        同級元素選擇器
    >
        子元素選擇器

nth-child和nth-of-type
    這兩個玩意兒相比前幾個來說應該要常見一點,在項目中應用的應該也蠻多的,一是因爲給css的class命名確實是個亙古難題,但是個人並不推薦使用,因爲這玩意兒很難維護。
    舉個例子,一個月前你寫個了div:nth-child(6),但一個月以後業務需求遍歷,需要你把第3個item刪掉,這個時候,你就需要在一堆html節點裏面找到第三個item刪掉,然後再去css裏面找到第3個item的樣式刪掉。然後這個時候你突然發現,原來的div:nth-child(6)此時應該變成了5。我...然後又得把前面的12345,一次改成1234。。。不管你暈沒暈,反正我是暈了。。
    其次nth-child和nth-of-type也是有點細微區別的,舉個栗子,p:nth-child(2)和p:nth-of-type這兩個實例,在W3C上,p:nth-child(2)的定義是父容器下面的第二個子元素的所有p,而p:nth-of-type(2)是指父容器下面的第二個p元素的所有p
        可以看到,nth-child更強調第x個子元素,而nth-of-type更強調第x個x元素。
    寫到這兒突然想起了,下一次文章的內容——class命名之道,哈哈哈

not
    意爲不包含,還可以結合nth-child選擇器,比如:.container div:not(:last-child) { color: red } ,意爲選中.container下面的所有div,除了最後一個。

總結
    css這個東西可能總是被大家忽略,也見到很多人在簡歷上寫着“精通css”,但是真的又有多少人能做到精通呢?寫這篇文章的目的是想告訴自己,在技術的這個圈子裏,要謹慎“精通”,不要被自己的理所當然麻痹了,要永遠對技術懷揣着一顆敬畏之心,要明白自己的不足之處。不能窮究,那就說明還需要未知的地方等待自己去探索,也說明還需要學習
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章