Sass 基础用法(下)

BEM命名法

Block Element Modifier

  1. Block: 主要名字 -> user-card
  2. Element: 两个下划线表示嵌套的内容 -> user-card__avatar, user-card__name
  3. Modifier:两个中划线表示hover等动作 -> user-card__avatar--hover, user-card__avatar--active

改进版

  1. -> 驼峰式写法。
  2. 两个下划线 -> 一个下划线。
  3. 最后的Modifier再写多一个class来代替。
    例子:.user-card__avatar--active -> .userCard-avatar .active

应用

‘&’表示当前选择器。

.userCard {
    width: 100px;

    &.active {
        background: yellow;
    }

    &-name {
        color: black;
    }
}

嵌套缩写

font-size: 18px;
font-weight: bold;
font-family: ....

缩写成如下形式

font: {
    size: 18px;
    weight: bold;
    family: 'Courier New', Courier, monospace;
}

SCSS的注释

支持多行和单行注释。

变量作用域

设置局部作用域

&-description {
    $red: red;
    background: $red;
}

&-name {
    $red: #680;
    background: $red;
}

应用

可以设置 1:1 的值。

$width: 100px;
.x {
    width: $width;
    height: $width;
}

局部变全局

在局部变量添加 !global 变成全局变量。

.x {
    $width: 100px !global;
    width: $width;
    height: $width;
}

运算

加减法

.x {
    $width: 100px;
    width: $width / 2; // 宽度的一半
    height: $width * 2; // 高度2倍
}

乘法

不能 100px * 100px, 因为会变成 100px 的平方。要写成 100px * 100

.x {
    width: 100px * 100;
}

除法

在 SassScript 里用 / 分隔的两个数字, 都会在 CSS 中原封不动的输出。
下面情况可以作为除法:

  1. 如果数值或它的任意部分是存储在一个变量中或是函数的返回值。
.x {
    $width: 100px;
    width: $width / 100; // 1px
}
  1. 如果数值被圆括号包围。
.x {
    width: ($width / 100); // 1px
}
  1. 如果数值是另一个数学表达式的一部分。
.x {
    width: $width / 100 - 0; // 1px
}

取模

可以用于函数来判断奇偶。

.x {
    width: 100px % 3; // 1px
}

颜色运算

.userCard {
    $red: red;
    background: $red + #888;
}
效果

字符串插值

'#{变量}',将变量加入到字符串中。

.userCard {
    $red: #680;
    &::before {
        content: '[ #{$red}' // -> '[ #680'
    }
    &::after {
        content: ']'
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,157评论 1 45
  • Sass简介 Sass是一个CSS预处理器,CSS预处理器是用一种专门的编程语言,进行页面样式设计,然后再编译成正...
    gakiww阅读 391评论 0 2
  • 基础 声明变量 普通变量 默认变量 变量覆盖:只需要在默认变量之前重新声明下变量即可 变量的调用 局部变量和全局变...
    Jill1231阅读 1,416评论 0 1
  • 今天就要过去了,可我有些恋恋不舍,为自己的平庸和碌碌无为而感到焦躁。在26岁这个最佳施展抱负的年龄,我感觉自己被束...
    zhangriverxu阅读 225评论 0 0
  • 今日体验:这两天天气比较热.对于进厂车辆一定要检查到位.更不要漏项和有些地方根本不去检查.以免造成客户出场再次返厂...
    京心达何海港阅读 178评论 0 0

友情链接更多精彩内容