css模块化:scss基础概念

变量声明
$highlight-color: #F90;
$basic-border: 1px solid black;
注意{} 内的声明只能在{}内的声明后用
 
默认变量值:通常来说,同一个变量,写在后面的会覆盖前面的值,
如果想改变这种,只是给个默认值
$fancybox-width: 400px !default;
.fancybox {
width: $fancybox-width;
}
 
 
混合器(@mixin  @include)
@mixin rounded-corners {
  border-radius: 5px;
}
 
notice {
  background-color: green;
  @include rounded-corners;
}
 
// 最终生成
notice{
  border-radius: 5px;
  background-color: green;
}
 
 
混合器是可以传参的,就像函数一样,可以是
@include link-colors(blue, red, green);
@include link-colors($normal: blue, $visited: green, $hover: red);
 
 
导入文件
Css 中有个不常用的特性:@import规则,允许一个 css文件中导入其他 css 文件,
但是因为是异步加载的,只有执行到@import 的时候,浏览器才会去下载,引起回流。
 
sass 也有一个 @import 规则,但不同的是, sass @import 规则在生成 css 文件时就把相关文件导入进来。
@import 可以省略后缀名
 
scss可以选择不转化的文件
比如一些公共部分,不会单独拿出来使用,只是作为模块嵌入到一个个 scss 文件中,这种就不需要转成 css
方法就是以下划线开头的,scss 文件,不会被转化
 
注释
body {
  color: #333; // 这种注释内容不会出现在生成的css文件中
  padding: 0; /* 这种注释内容会出现在生成的css文件中 */
}
 
 
选择器继承 @extend
//通过选择器继承继承样式, 
.error {
  border: 1px solid red;
  background-color: #fdd;
}
.seriousError {
  @extend .error;
  border-width: 3px;
}
不仅仅是继承样式,而且所有使用.error 的地方,都有替换成 .seriousError 的效果
//.seriousError从.error继承样式
.error a{  //应用到.seriousError a
  color: red;
  font-weight: 100;
}
h1.error { //应用到hl.seriousError
  font-size: 1.2rem;
}
 
附录:选择器
父选择器标识符:尤其是在有伪类选择器的时候
article a {
  color: blue;
  &:hover { color: red }
}
 
article a { color: blue }
article a:hover { color: red }
 
群组选择起的嵌套
.container {
  h1, h2, h3 {margin-bottom: .8em}
}
 
.container h1, .container h2, .container h3 { margin-bottom: .8em }
 
nav, aside {
  a {color: blue}
}
 
nav a, aside a {color: blue}
 
子组合选择器和同层组合选择器
// 选择article下的所有命中section选择器的元素
article section { margin: 5px }
// 选择article下紧跟着的子元素中命中section选择器的元素
article > section { border: 1px solid #ccc }
 
// 同层相邻组合选择器+
header + p { font-size: 1.1em }
// 同层全体组合选择器~
article ~ article { border-top: 1px dashed #ccc }
 
嵌套属性
nav {
  border: {
  style: solid;
  width: 1px;
  color: #ccc;
  }
}
 
nav {
  border-style: solid;
  border-width: 1px;
  border-color: #ccc;
}
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值