盘点那些你可能不知道的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”,但是真的又有多少人能做到精通呢?写这篇文章的目的是想告诉自己,在技术的这个圈子里,要谨慎“精通”,不要被自己的理所当然麻痹了,要永远对技术怀揣着一颗敬畏之心,要明白自己的不足之处。不能穷究,那就说明还需要未知的地方等待自己去探索,也说明还需要学习
 

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