先随便说点啥
10月16号的时候,在刷张鑫旭blog学习知识点的时候看到他的新书《css选择器世界》出了。于是打开kindle搜索了下,还没有上架。于是这次准备买纸质版看,今天终于到了嘿嘿嘿。
r
去年也买了大佬的《css世界》(kindle版),读了大半受教良多。非常推荐大家买一本纸质的慢慢阅读。
![]()
叙述
- 设置id的html标签可以在js中使用对应的方法,无需使用document.getElementById。(这里我仅测试了chrome浏览器)
1 2 3 4 5 6
| <p id="test"></p> <script> test.innerHTML('hello wolrd') </script>
|
2.知道了一个新的选择符 列(||)
3.可以使用 id.attachShadow({mode:’open’}) 用js来模拟元素的:scope(作用域)
4.可以通过加上-webkit-
前缀来支持某些新的伪类
5.当同时写多个选择器时,只要其中有一个选择器被浏览器认定无效,则多个选择器的css都会失效
第二章 css选择器的优先级
- css优先级 (0-6级 越大权值越重)
0级:通配选择器(*)、选择符(+ > ~ || 和空格)、逻辑组合伪类(:not()、:is()等)
1级:标签选择器 body、html、a之类
2级:类选择器、属性选择器、伪类 .foo、[foo]、:hover
3级:ID选择器 #foo
4级:style内联样式
5级:!important
2.增加css选择器优先级可以多次重复自身来实现,如元素为.foo,可以写成.foo.foo这样来提高优先级。
第三章 css选择器的命名
这一章看的非常舒服,文中带来了一种新的思想以处理不同规模的项目中css的简化。说了不少对命名规范和项目css设计的考虑和权衡。
1.css中类选择器、ID选择器、属性选择器([xxx=xxx])对大小写敏感,但是属性选择器可以通过在结尾加i实现对大小写不敏感。(如:[xxx=xxx i])
2.css不支持数字开头是真。但是通过\转义,就能使用非ASCII的字符做为命名。如.\31中\31就是16进制中的1。
3.css也可以使用中文和中文标点符号、emoji表情来命名
4.css的命名建议:
- 使用短命名,单词尽量采用简写。如introduction可以直接简写为intro
- 尽量不用常见单词命名,即使用也需要加上唯一的前缀。如title、box等
- 可以使用html标签或者特定属性值、无障碍内容、伪类作为标签。如.g-body、.g-radio、.g-log等
- 尽量不用ID选择器
- 不要嵌套选择器,尽量只保持一层结构
- 对于某些不常修改的节点,如果需要设置简单的样式,可以使用面向属性的命名,如.fl{float:left}等
- 状态类名不要存在css样式,用级联类来覆盖状态类名。如.active效果则在对于结构下用.module .active来覆盖写入样式
- 命名不建议用驼峰、组合单词不能超过5个
- 除了对性能的极致追求,也要权衡命名和css结构对整个项目的影响。必要时候可以因为某些原因来妥协命名和结构
第四章 精通css选择符