sass的基础学习(一)

3 篇文章 0 订阅

变量

  • 变量的声明 $变量名
  • 变量的引用
  • 变量可以用中划线,也可以用下划线 两者命名的内容是相通的,但在sass中纯css部分不互通

嵌套CSS规则

  • 可以在规则块中嵌套规则块,避免相同class名或id名重复书写(但编译过后还是原本css的规则),大部分情况下简单的嵌套都没问题,但在父选择器下有一个类似于:hover的伪类,这时候要采用&

  • 父选择器的标识符&

  • 群组选择器的嵌套 (普通css的写法.container h1, .container h2, .container h3 { margin-bottom: .8em }) sass的嵌套写法.container {
    h1, h2, h3 {margin-bottom: .8em}
    }
    处理这种群组选择器规则嵌套的能力,正是sass在减少重写书写方面的贡献
    有利必有弊,虽然sass让样式看上去很小,但实际生成的css非常大,降低网站的速度

  • 子组合选择器和同层组合选择器>、+、~ (+ 同层相邻相当于next()方法,~同层相邻全体相当于nextAll())

  • 嵌套属性 把属性名从中划线-的地方断开,在根属性后面添加一个冒号:紧跟一个{}块,把子 属性部分写在{}块中,sass会把子属性一一解开,把根属性和子属性用过中划线连接起来,最后生成的效果和手写的css样式一样

nav {
  border: 1px solid #ccc {
  left: 0px;
  right: 0px;
  }
}
//解析之后的css样式
nav{
border: 1px solid #ccc;
  border-left: 0px;
  border-right: 0px;
}

样式表越来越大,可以将其分拆成多个文件
导入SASS文件
css:@import允许在一个css文件中导入其他css文件,后果是只有执行到@import时浏览器才会下载其他css我那件,导致页面加载起来很慢
sass:在生成css文件后就把相关文件导入进来,意味着所有相关的样式都被归纳到同一个css文件,而无需发起额外的下载请求

  • 使用SASS部分文件
    sass局部文件名以下划线开头,sass就不会在编译时单独编译这个文件输入css,而只把这个文件用作导入
    当@import导入部分文件时,还可以不用写文件的全名,即省略文件名开头的下划线

  • 默认变量值
    !default,它很像css属性中的!important标签的对立面,不同的是!default用于变量,如果这个变量被声明赋值了,那就用它声明的值,否则就用默认值
    如果用户在导入你的sass文件之前申明了一个 f a n c y b o x − w i d t h 变 量 , 下 面 局 部 文 件 中 对 fancybox-width变量,下面局部文件中对 fancyboxwidthfancybox-width赋值400px的操作就无效

$fancybox-width: 400px !default;
.fancybox {
width: $fancybox-width;
}
  • 嵌套导入
    这种导入方式下,生成对应的css文件时,局部文件会被直接插入到css规则内导入它的地方
//_blue-theme.scss文件
aside {
  background: blue;
  color: white;
}
//然后把它导入到一个CSS规则内
.blue-theme {@import "blue-theme"}

//生成的结果跟你直接在.blue-theme选择器内写_blue-theme.scss文件的内容完全一样。

.blue-theme {
  aside {
    background: blue;
    color: #fff;
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值