Sass/Scss笔记

文档参考 https://www.sass.hk/

安装

yard add --dev node-sass       //npm i node-sass -D

yard add --dev sass-loader     //npm i sass-loader -D

webpack配置

变量

同名变量

$link-color$link_color 是同一个变量,定义其中一个可以用另一个名字访问

全局变量

$basic-border: 1px solid black;

局部变量
nav {
  $width: 100px;
  width: $width;
  color: $nav-color;
}
默认变量

注:使用在组件sass/scss中,当被其他sass/scss文件@import时这个变量默认值为 400px,如果此时又写了一个同名变量,则变量值被后者覆盖,可以认为是 !important 这个css属性的对立

$fancybox-width: 400px !default;
.fancybox {
  width: $fancybox-width;
}
覆盖变量
$link-color: blue;
$link-color: red;
a {
  color: $link-color; /* red */
}
使用方法
// (1)作为属性的一部分
.selected {
  border: 1px solid $highlight-color;
}
// (2)作为整个属性值
.selected {
  border: $highlight-border;
}

注释

//单行注释

/* 特殊行注释 */

/**
 * 文档注释
 */

嵌套

层级嵌套关系

父选择器

组合嵌套关系

选择器嵌套关系

article {
    ~article{
        border-top:1px dashed #ccc;
    }
    > section { background:#eee; }
    dl > {
        dt { color:#333; }
        dd { color:#555; }
    }
    nav + & { margin-top: 0; }
}

//编译后
article ~ article{
    border-top:1px dashed #ccc;
}
article > footer{
    background:#eee;
}
article dl > dt {
    color:#333;
}
article dl > dd {
    color:#555;
}
nav + article{
    margin-top: 0;
}

属性嵌套关系

nav{
    border:{
        style:solid;
        width:1px;
        color:#ccc;
    }
}

//编译后
nav{
    border-style:solid;
    border-width:1px;
    border-color:#ccc;
}
nav{
    border:1px solid #ccc {
        left:0;
        right:0;
    }
}

//上面比下面写更加优雅
nav{
    border:1px solid #ccc;
    border-left:0;
    border-right:0;
}

导入

css的@import

它允许在一个css文件中导入其他css文件。只有执行到@import时,浏览器才会去下载其他css文件,这导致页面加载起来特别慢。

sass@import

(1)

sass的@import规则在编译生成css文件时就把相关文件导入进来无需发起额外的下载请求

(2)

使用sass的@import规则并不需要指明被导入文件的全名。可以省略.sass.scss文件后缀在不修改样式表拓展名的前提下,完全可以随意修改你或别人写的被导入的sass样式文件语法,在sassscss语法之间随意切换。

因此出现一个问题,每一个sass/scss文件都会被编译为对应的一份css文件,为了解决有些sass/scss文件只是为了提高开发体验所写的"组件样式",不想因此多了一个网络请求。
@import命令配上组件sass才能彻底发挥作用!

组件sass文件

混合器

函数混合器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值