深入解析css 选择器,css调试工具?
css说是调试工具其实只是一段 Javascript 代码,但非常实用,它会给页面里所有的 DOM 元素添加一个 1px 的描边(outline),方便我们在调试 CSS 过程中分析、排查问题。
先来看看代码,它有两个版本,一个是使用的$$选择器,代码量更少(浏览器控制台支持 $$ 选择器);另一种就是传统的document.querySelectorAll选择器:
和css中的选择器有什么区别?
这个是有区别的。
1、首先说两者是属于不同的两门语言,jquery是属于js的一个框架,则其选择器是js里面的选择器,css是另一门不同于js的语言,其选择器是css选择器,则两者在根本上是不同的。
2、但是两者是有交集的,都是作为网页或者浏览器解析的语言,而js可以通过修改浏览器的dom对象来实现对css修改或者是控制。
3、可以简单的这样区分两者,css选择器用语css当中,js选择器应用于js当中,只不过有时两者使用相同的id标识来选择对象。
用什么表示子代选择器?
CSS3中的关系选择器主要包括子代选择器和兄弟选择器,其中子代选择器由符号连接,兄弟选择器由符号“+”和“~”连接,具体如下所示。
(1)关系选择器
例如: h1>strong
说明:表示选择嵌套在h1标记的子标记strong。
(2)临近兄弟选择器
例如: h2+p
说明:表示选择h2标记后紧邻的第一个兄弟标记p。
(3)普通兄弟选择器
例如:p~h2
说明:表示选择p标记所有的h2兄弟标记
postcss和cssmodule是什么?
postcss是什么?
根据官网的解释,它是一种javascript编写的工具,用来转化css的。可以认为它是处理css的插件集合,需要配合诸如webpack、gulp等编译工具才能展现它强大的能力。
目前社区提供了非常多的插件,比较有名的如下:
autoprefixer 可以为css的属性配置兼容性的前缀,不需要手动添加postcss-preset-env 允许你使用更加现代的css特性stylelint 检查css语法错误cssnano css的压缩器等等postcss的原理如果大家了解babel的原理,那就应该听说过AST即抽象语法树。编译器将字符串进行词法分析、语法分析,再做转换,最终达到预期的结果。postcss也是同样的原理,这个包已经为使用者提供了解析的方法parse,并且也提供了很多转化的API,利用这些就可以自己开发一款postcss插件了。
css Module是什么?先前呢,我们使用css选择器,它是对整个页面是有效的,也就是全局的,当你每次迭代需求的时候,需要考虑每次添加新的css是否会影响到其他地方,所以我们有时选择为样式表添加命名空间。css Module为我们提供了另外一种开发方式,它可以使css具有局部作用域。
用法如下:
用法是如此的简单,基本一看就会,css-loader为我们提供了css Module的开关,只要为css-loader添加参数选项modules就可以开启。注意:它必须放在less或者sass的loader之前。
那它如何做到局部作用域的呢?
打开element面板可以发现,它把class变成了md5戳,对应每个组件,保持唯一。
vue的scoped由此我们联想到vue的scoped,它也解决了css局部作用域的问题!
它在dom上生成了一个data属性,并且给class选择器添加了属性选择器,类似于之前的md5戳。不过由于添加了属性选择器,使得选择器的优先级变高了,想在组件外面覆盖css属性就变得不那么容易了!
喜欢我的回答就关注我吧,有问题可以发表评论,我们一起学习,共同成长!