关系选择器:
div div:
div之后的所有div,即子div,孙div,重孙div等等等,只要包含在我div里的都可以被选中。
div>div:
div之后的子div:仅能选中子div,不能再往后选。
div+div:
紧紧贴在div后面的兄弟div,仅选择到一个兄弟div。
div~div:
所有贴在div后面的兄弟div,可以选择到所有的兄弟div。
伪类选择器:
a:link{} 链接访问前
a:visited{} 链接访问后
a:hover{} 链接悬停时
a:active{} 链接点击时
若想对一个链接进行这四种样式设置,必须是这个顺序lvha(LV哈)
input:focus{} 输入框聚焦时,比如切换登录密码框时设置背景或者边框等
E:lang(fr) 匹配特殊的字符串,在需要匹配的地方加一个lang=“fr”属性
E:not(s) 否定伪类选择器,选择不包含s的元素
E:root 讲道理觉得这个没用...还是我太菜没看懂,留个坑以后来填吧
E:first-child、E:last-child、E:only-child、E:nth-child(n)、E:nth-last-child(n)
讲道理我认为这个选择器不好,维护起来成本有些高,说白了就是修改起来很麻烦,需要一个一个去数,第几第几个这样,或者说这个比较严格
E:first-of-type、E:last-of-type、E:only-of-type、E:nth-of-type(n)、E:nth-last-of-type(n)
这个就明显比上面的好,或者说这种约束更加松散
E:empty 选择内容为空的元素
input:checked 匹配单选框或者复选框被选中的部分
input:enabled 匹配文本框可以输入的部分
input:disabled 匹配文本框不可以输入的部分
讲道理,最后这个震撼到我了!
#id:target 和锚点配合使用,无解
当你使用锚点进行页面跳转的时候,竟然可以选中目标页面并且为之设置样式,真的惊呆!
伪对象选择器:
E:first-letter/E::first-letter 可以叫它杂志首字下沉选择器
代码和效果如下:
E:first-line/E::first-line 可以叫它第一行选择器
代码和效果如下:
E:before/E::before 在元素之前添加content
E:after/E::after 在元素之后添加content
E::placeholder 文字占位符选择器
本来看到占位符能直接被选中挺高兴,结果看了兼容性之后,瞬间无爱...
E::selection 选中元素选择器
代码和效果见图:
属性选择符:
E[att="val"] 匹配包含val的元素,缺点是若用这个选择器的话,class只能写一个
E[att~="val"] 空格符分割的class,包含val即可
E[att^="val"] 以val开头的,有没有空格符或者横岗都无所谓abc都能匹配a
E[att$="val"] 以val结尾的,有没有空格符或者横岗都无所谓cba都能匹配a
E[att*="val"] 包含即可,abc,cba,bca都能使用a来匹配
E[att|="val"]-分割的class,包含val即可,test3都可以匹配到test3-abc
为了保证文档的完整性,加上这几种基本选择符:
* E #id .class
选择器优先级:
王者级:直接在标签里设置样式(权值:1000)
大师级:ID选择器(权值:100)
钻石级:类选择器(权值:10)伪类选择器、属性选择器
铂金级:标签选择器(权值:1)伪对象选择符
优先级竟然可以计算?
代码及效果图如下:
按照上述规则:
.l div = 10 + 1 = 11
.l .k =10 + 10 = 20
.l #k = 10 + 100 = 110
所以效果如下图:
若是想让.l div最优先呢?
这还是只浅尝,要恰到好处的用这些css选择器,还是需要一些时间的,零件学到手,能组装出什么样的作品就看个人修行了
基础知识掌握牢固,相当于盖楼打稳地基,避免盖空中楼阁
努力成为优秀的前端工程师!
>期待和大家交流,共同进步,欢迎大家加入我创建的与前端开发密切相关的技术讨论小组:
> - SegmentFault技术圈:[ES新规范语法糖](https://segmentfault.com/g/1570000010695363)
> - SegmentFault专栏:[趁你还年轻,做个优秀的前端工程师](https://segmentfault.com/blog/chennihainianqing)
>- 知乎专栏:[趁你还年轻,做个优秀的前端工程师](https://zhuanlan.zhihu.com/wyasy)
>- Github博客: [趁你还年轻233的个人博客](https://github.com/FrankKai/FrankKai.github.io)
>- 前端开发QQ群:660634678
>- 微信公众号: 人兽鬼 / excellent_developers
![](https://upload-images.jianshu.io/upload_images/2976869-157e8624bcdfd62a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>努力成为优秀前端工程师!