sass文档摘记

2024-06-07 00:32
文章标签 摘记 sass 文档

本文主要是介绍sass文档摘记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

过了一遍sass文档,自己过滤了一些觉得不太推荐使用的内容,记录下以前不知道的内容
下文中例子都摘自https://www.sass.hk/docs/

1.变量

$nav-color: #F90;
nav {$width: 100px;width: $width;color: $nav-color;
}

变量可以引用别的变量
中划线和下划线是互通的,也就是说,$a_b$a-b是同一个变量,最好不要使用这个规则
变量默认值,$fancybox-width: 400px !default;
!global可以将局部变量转换为全局,最好不要用
#{}引用的变量将编译为无引号字符,可以避免运行运算符

p {$font-size: 12px;$line-height: 30px;font: #{$font-size}/#{$line-height}; // 输出12px/30px; font: $font-size/$line-height; // 输出0.4
}

2.嵌套

属性也可以嵌套,但是个人觉得别用为好

nav {border: 1px solid #ccc {left: 0px;right: 0px;}
}

3.@import

不同于css,sass在生成css时就会把文件导入
局部文件的文件名以下划线开头,局部文件,不需要单独生成css的文件,比如themes/_night-sky.scss,这样导入@import “themes/night-sky”;
导入文件也可以嵌套,.blue-theme {@import “blue-theme”}
包含media queries,@import仅作为普通的CSS语句,http://开头,url()地址,也是一样
不可以在混合指令 (mixin) 或控制指令 (control directives) 中嵌套 @import

4.mixin

mixin可以传参

@mixin link-colors($normal, $hover, $visited) {color: $normal;&:hover { color: $hover; }&:visited { color: $visited; }
}
a {@include link-colors(blue, red, green);
}//Sass最终生成的是:
a { color: blue; }
a:hover { color: red; }
a:visited { color: green; }// 这样写可以忽略传参的顺序
a {@include link-colors($normal: blue,$visited: green,$hover: red);
}// 这样写可以给参数赋默认值
@mixin link-colors($normal,$hover: $normal,$visited: $normal)
{color: $normal;&:hover { color: $hover; }&:visited { color: $visited; }
}// 不定参数
@mixin box-shadow($shadows...) {box-shadow: $shadows;
}
.shadows {@include box-shadow(0px 4px 5px #666, 2px 6px 10px #999);
}
// 另一种情况
@mixin colors($text, $background, $border) {color: $text;background-color: $background;border-color: $border;
}
$values: #ff0000, #00ff00, #0000ff;
.primary {@include colors($values...);
}

@content用来传递mixin的内容

@mixin apply-to-ie6-only {* html {@content;}
}
@include apply-to-ie6-only {#logo {background-image: url(/logo.gif);}
}
//输出
* html #logo {background-image: url(/logo.gif);
}// @content的变量值是@include定义的时候值
$color: white;
@mixin colors($color: blue) {background-color: $color;@content;border-color: $color;
}
.colors {@include colors { color: $color; }
}
// 输出
.colors {background-color: blue;color: white; // 注意这里border-color: blue;
}

@content的目的,使用media-queries,animation的keyframes等块内容的时候

@mixin keyframes($name){ @keyframes #{$name} { @content; } 
} 
@include keyframes(show){ 0% { opacity:0; } 100% { opacity:1; } 
}

@mixin 可以用 = 表示, @include 可以用 + 表示

5.extend

慎用,尤其对于后代选择器

.error {border: 1px solid red;background-color: #fdd;
}
.seriousError {@extend .error;border-width: 3px;
}// 下面这句将会应用到.seriousError a,尤其需要注意
.error a{  color: red;font-weight: 100;
}
// 也就是说生成后是这样的
.error a, .seriousError a {color: red;font-weight: 100; 
}// %作为占位符
#context a%extreme {color: blue;
}
.notice {@extend %extreme;
}
// 输出
#context a.notice {color: blue;
}// 听说这种情况使用%占位比mixin要好,但是%的块里面是不可以用&的,使用了也不会生效
// 参考http://www.w3cplus.com/preprocessor/8-tips-help-get-best-sass.html
%bg-image { width: 100%; background-position: center center; background-size: cover; background-repeat: no-repeat;
} 
.image-one { @extend %bg-image; background-image:url("/img/image-one.jpg");
} 
.image-two { @extend %bg-image; background-image:url("/img/image-two.jpg");
}

在指令中使用 @extend 时,必须延伸给相同指令层中的选择器

// 可以
@media print {.error {border: 1px #f00;background-color: #fdd;}.seriousError {@extend .error;border-width: 3px;}
}// 不行
.error {border: 1px #f00;background-color: #fdd;
}@media print {.seriousError {// INVALID EXTEND: .error is used outside of the "@media print" directive@extend .error;border-width: 3px;}
}

6.指令

@at-root 让规则生成在文档的root层级下,不推荐使用
@debug @warn @error 调试用
@if 分支
@for @each @while 循环
其中each还可以写成这样

@each $animal, $color, $cursor in (puma, black, default),(sea-slug, blue, pointer),(egret, white, move)
以及这样
@each $header, $size in (h1: 2em, h2: 1.5em, h3: 1.2em)        再看一个@while的例子,变量可以很灵活
$i: 6;
@while $i > 0 {.item-#{$i} { width: 2em * $i; }$i: $i - 2; // 注意这里
}

@function 自定义函数

$width: 40px;@function grid-width($n) {@return $n * $width + ($n - 1);
}#sidebar { width: grid-width(5); }

这篇关于sass文档摘记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1037676

相关文章

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

工程文档CAD转换必备!在 Java 中将 DWG 转换为 JPG

Aspose.CAD 是一个独立的类库,以加强Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格

关于word文档中目录的switch

有很多的switch,下面这篇文章介绍的比较详细,可以参考:http://word.mvps.org/FAQs/Formatting/TOCSwitches.htm

HTML文档插入JS代码的几种方法

在HTML文档里嵌入客户端JavaScript代码有4中方法: 1.内联,放置在< script>和标签对之间。 2.放置在由< script>标签的src属性指定的外部文件中。 3.放置在HTML事件处理程序中,该事件处理程序由onclick或onmouseover这样的HTML属性值指定。 4.放在一个URL里,这个URL使用特殊的“javascript:”协议。 在JS编程中,主张

9 RestClient客户端操作文档

1. match_all @GetMapping("matchAll")public void matchAll() throws IOException {//1. 准备requestSearchRequest request = new SearchRequest("hotel");//2. 组织DSL参数request.source().query(QueryBuilders.matchA

如何给文档设置密码?电脑文件安全加密的详细操作步骤(10种方法)

在数字化时代,电脑文件的安全和隐私至关重要。通过给电脑的文件或者文件夹设置密码和加密,可以有效保护你的重要文件不被未经授权的人员访问,特别是公司的重要岗位,一些特殊的机密文件,投标文件,资金文件等等,更应该注重文件日常使用安全性。下面将为你介绍10种电脑文件,文件夹加密的详细操作步骤,帮助你更好地保护你的电脑文件安全。 加密方式一、Windows系统内置加密(电脑自带的文件加密) 选中需要

Kimichat使用案例026:AI翻译英语PDF文档的3种方法

文章目录 一、介绍二、腾讯交互翻译TranSmart https://transmart.qq.com/三、沉浸式翻译三、谷歌网页翻译 一、介绍 短的文章,直接丢进kimichat、ChatGPT里面很快就可以翻译完成,而且效果很佳。但是,很长的PDF文档整篇需要翻译,怎么办呢? 二、腾讯交互翻译TranSmart https://transmart.qq.com/ 软件

CloudStack管理员文档 - 服务方案

用户创建一个实例可以又很多个选项来设定该实例的特性和性能。CloudStack提供以下几种方式: 服务方案,由管理员定义,提供了CPU速度,CPU数量,内存大小,根磁盘的标签,以及其他选项磁盘方案,由管理员定义,为主存储提供了磁盘大小和IOPS的选项网络方案,由管理员定义, 计算和磁盘方案 服务方案是CPU,内存,磁盘等虚拟硬件特性的集合。管理员可以创建各种服务方案,终端用户在创建虚拟机的时

Typora撰写Markdown文档上传到github上图片显示问题

OS:Windows 软件:Typora 相信很多人都有撰写Markdown文档的需求,在这里首先安利一下Markdown撰写利器---typora。 Typora支持多种快捷方式生成markdown语法,快速入门,排版整齐漂亮。 当我们向markdown中粘贴图片资源的时候,会自动提示保存图片到...  这时我们可以在存放markdown文档的地方建立一个assert或者pic静态资源文

学生作业管理系统设计文档

一、项目概述 本系统设计文档旨在为学生作业管理系统提供一个全面的设计方案。该系统旨在提高作业管理的效率,减轻教师的工作负担,并为学生提供一个清晰、便捷的作业提交和查看平台。系统需具备作业发布、作业提交、作业批改、成绩查看等基本功能,同时保证系统的稳定性、可扩展性和易用性。 二、系统功能性需求 1.用户管理 用户注册与登录 用户角色管理(教师、学生、管理员) 用户信息修改与查看 2.作业管