当前位置: 首页 > Web前端 > CSS

sass学习

时间:2023-03-31 11:59:11 CSS

基本规则:使用$定义伪类,使用&定义样式,嵌套定义,如#example{a{body.ie&hover{color:red}color:white;}div{background:black;}}body.ie&hover{color:red}<=>body.ie#examplea:hover{color:red}嵌套规则适用于组选择器,>+~选择器(sass嵌套是其实就是拼接空格)border:{style:left:right:}<=>border-style:border-left:border-right:@import的使用:原生的只会在执行的时候加载,速度比较慢;而sass的@import是在文件生成Import的时候生成的,相当于合并css文件的部分文件,约定用下划线定义,比如(_example.scss),部分scss文件不会单独编译,并且只会存在于被引用的文件中。部分文件中的变量加!default(如$val=red!default;),表示默认值,未定义时生效。添加了全局变量!;文件名是url地址(如http://www.sass.hk/css/css.css;文件名是css的url()值,静默注释编译后不会显示,格式://Commentmixervia@mixinmixin($a:red,$b)definition,@includecall,:followedbydefaultvalueWhenuse:你能为这个mixer想出一个好的简称继承@extend定义,与父样式相关的继承所有样式(如:.child@extend.father)都可以使用选择器,选择器只对选择器命中的样式生效(后半部分),对子类也同样有效(前半部分).继承相当于.father.child,所以会出现复杂的选择器,为了避免生成大量的选择器,css中不要使用后代选择器rules.foo.bar{@extend.baz;}.bip.baz{一个:乙;}这个例子有foo->bip->bar,(foo,bip)->foo->bar,bip->bar三种情况,如果其中一个规则的后代选择器比较复杂,代码量会越来越大呈指数增长。理解Scss本质上是对字符串的格式化编译,比如变量,因为是从上到下格式化成css的,所以变量只能写在最上面,编译器读取变量值,替换引用的部分;设置样式,&会直接拼接,不加空格,而:会加一个-字符。