2019独角兽企业重金招聘Python工程师标准>>>

@import、@media、@extend

Sass 支持所有的 CSS3 @-Rules,以及 Sass 特有的 “指令”(directives)。

@import

Sass 拓展了 @import 的功能,允许其导入 SCSS 或 Sass 文件。被导入的文件将合并编译到同一个 CSS 文件中,另外,被导入的文件中所包含的变量或者混合指令 (mixin) 都可以在导入的文件中使用。

通常,@import 寻找 Sass 文件并将其导入,但在以下情况下,@import 仅作为普通的 CSS 语句,不会导入任何 Sass 文件。

· 文件拓展名是 .css;

· 文件名以 http:// 开头;

· 文件名是 url();

· @import 包含 media queries。

分音 (Partials)

如果需要导入 SCSS 或者 Sass 文件,但又不希望将其编译为 CSS,只需要在文件名前添加下划线,这样会告诉 Sass 不要编译这些文件,但导入语句中却不需要添加下划线。

例如,将文件命名为 _colors.scss,便不会编译 _colours.css 文件。

注意,不可以同时存在添加下划线与未添加下划线的同名文件,添加下划线的文件将会被忽略。

嵌套 @import

大多数情况下,一般在文件的最外层(不在嵌套规则内)使用 @import,其实,也可以将 @import 嵌套进 CSS 样式或者 @media 中,与平时的用法效果相同,只是这样导入的样式只能出现在嵌套的层中。

@media

Sass 中 @media 指令与 CSS 中用法一样,只是增加了一点额外的功能:允许其在 CSS 规则中嵌套。如果 @media 嵌套在 CSS 规则内,编译时,@media 将被编译到文件的最外层,包含嵌套的父选择器。这个功能让 @media 用起来更方便,不需要重复使用选择器,也不会打乱 CSS 的书写流程。

@media 的 queries 允许互相嵌套使用,编译时,Sass 自动添加 and

@media screen {.sidebar {@media (orientation: landscape) {width: 500px;}}}编译为@media screen and (orientation: landscape) {.sidebar {width: 500px; } }

@extend

@extend 的作用是将重复使用的样式延伸 (extend) 给需要包含这个样式的特殊样式:

.error {border: 1px #f00;background-color: #fdd;
}
.error.intrusion {background-image: url("/image/hacked.png");
}
.seriousError {@extend .error;border-width: 3px;
}
编译为
.error, .seriousError {border: 1px #f00;background-color: #fdd; }.error.intrusion, .seriousError.intrusion {background-image: url("/image/hacked.png"); }.seriousError {border-width: 3px; }

@extend-Only 选择器 (@extend-Only Selectors)

(占位符%)有时,需要定义一套样式并不是给某个元素用,而是只通过 @extend 指令使用,尤其是在制作 Sass 样式库的时候,希望 Sass 能够忽略用不到的样式。

// This ruleset won't be rendered on its own.
#context a%extreme {color: blue;font-weight: bold;font-size: 2em;
}
占位符选择器需要通过延伸指令使用,用法与 class 或者 id 选择器一样,被延伸后,占位符选择器本身不会被编译。
.notice {@extend %extreme;
}
编译为
#context a.notice {color: blue;font-weight: bold;font-size: 2em; }

转载于:https://my.oschina.net/u/3412211/blog/1550798

Sass--@-Rules相关推荐

  1. vue 项目配置sass

    1.运行npm install node-sass --save-dev npm install sass-loader --save-dev 2.打开build文件夹下面的webpack.base. ...

  2. Sass (Syntactically Awesome StyleSheets)

    Sass (Syntactically Awesome StyleSheets) Sass 是对 CSS 的扩展,让 CSS 语言更强大.优雅. 它允许你使用变量.嵌套规则. mixins.导入等众多 ...

  3. Vue 应用 Sass、Scss、Less 和 Stylus

    Vue项目中应用预处理器,可以有效减少css代码量, 推荐使用Sass.Scss.Less预处理器.在创建项目的时候可以选择预处理器 (Sass/Less/Stylus). 如果当时没有选择,内置的 ...

  4. VUE中使用sass

    1.安装sass依赖包 (sass-loader依赖于node-sass) npm install --save-dev sass-loader npm install --save-dev node ...

  5. 初识css预处理器:Sass、LESS

    这篇文章是初步介绍css预处理的,详细学习请移步官网~ sass中文文档:https://www.sass.hk/docs less中文文档:http://lesscss.cn/ 什么是css预处理器 ...

  6. Bootstrap4默认样式不对胃口?教你使用NPM+Webpack+SASS来定制

    Bootstrap 是一个流行的前端样式库,可以方便快速的构建应用,但默认样式可能不尽人意,本文就介绍如何使用 NPM, Webpack, SASS 针对它的源码来定制自己的主题.版本使用的是 Boo ...

  7. rules不显示 vue_使用stylelint规范vue项目

    本文转载于SegmentFault社区 作者:Lewis92 前言 stylelint 是一个强大和现代的 CSS 审查工具,有助于开发者推行统一的代码规范,避免样式错误.其支持 less.sass ...

  8. Vue2.0项目中使用sass(踩坑之路)

    今天用2.0创建项目的时候,使用scss一直不成功,一直报错------ 记录一下,防止下次踩坑 1.安装依赖包 vue的webpack项目中需要安装上node-sass.sass-loader和st ...

  9. SASS+Compass基本使用,结合JavaScript实现随机点名小系统

    SASS+Compass基本使用,以一个随机点名demo为例 demo 源码:https://github.com/XieTongXue/call-over,效果请看(5),代码解释请看源码. (1) ...

  10. vue2.5安装sass步骤和需要注意的点

    1. sass依赖于node-sass,所以要先安装node-sass,但是现在如果直接使用 npm install node-sass --save来安装的话,会造成node-sass版本过高,运行 ...

最新文章

  1. python中ThreadLocal的理解与使用
  2. linux挂载U盘,及乱码问题解决
  3. 美团点评APP在移动网络性能优化的实践,通用流行框架大全
  4. mavenspringboot项目打包引入lib目录下jar包
  5. Linux系统的启动引导过程(转)
  6. SQL脚本修改数据库名称
  7. HDU2049 不容易系列之(4)考新郎 —— 错排
  8. windows游戏程序自动备份与更新
  9. oracle ebs工单入库,ORACLE-EBS_库存功能点操作模块.doc
  10. 易恢复Ontrack EasyRecovery15绿色版
  11. 小猫钓鱼纸牌游戏java_java实现纸牌游戏-小猫钓鱼算法
  12. 公云(3322)动态域名更新API
  13. Webdriver 爬取新浪滚动新闻
  14. 风控模型开发的特征选择与常用数据源介绍
  15. python描述符详解
  16. windows被迫重装系统| 数据恢复 | 启动盘 PE盘 | 批量软件安装
  17. 前端学习(三)UI设计
  18. 侵入式及非侵入式概念
  19. Nginx:last 和 break 的区别
  20. word跨页表格拆分与合并

热门文章

  1. windos 为什么会突然服务停止了_Windows服务异常自动关闭
  2. html dom createevent,js 中 document.createEvent的用法
  3. os.system方法
  4. numpy输出到屏幕时有逗号和没逗号的原因
  5. relu不可微为什么可用于深度学习
  6. linux登oracle登陆不了,oracle: linux服务器本机不能登陆的解决
  7. python tkinter计算器实例_python小实例——tkinter实战(计算器)
  8. 使用 cout 输出数据之控制输出格式(二)
  9. 天翼云从业认证【考前半小时的30句话】
  10. 第10章:项目沟通管理和干系人管理-章节重点