sass语法一(变量篇)

文件后缀名



sass有两种后缀名的文件:一种后缀名为sass,不使用大括号和分号;另一种是我们这里使用的scss文件,这种和我们平时使用的css文件格式差不多,使用大括号和分号。

//后缀名为sass的文件
body
    background: #eee
    font-size: 14px

//后缀名为scss的文件
body {
    background: #eee;
    font-size: 14px;
}

导入



sass的导入(@import)的规则和css不同,编译时会将@import的scss文件的内容合并进来,只生成一种css文件,但是如果你在scss文件中使用@import导入css文件;例如: @import ‘reset.css‘ ,那效果就和普通css导入一样,导入的css文件不会合并到编译后的文件中,而是以 @import 方式存在;

所有的scss导入文件都可以忽略后缀名 .scss 。一般来说基础的文件命名方式都是以下划线_开头,如 _mixin.scss 。这种文件在导入的时候可以不写下划线,可写成 @import ‘mixin‘;

被导入的scss文件 a.scss

//_a.scss

body {
    background: #eee;
}

需要导入样式的scss文件 b.scss

@import ‘reset.css‘; //导入reset.css
@imort ‘a‘;//导入a.scss文件

p {
    background: #ccc;
}

编译出来的b.css样式:

@import ‘reset.css‘;
body {
    background: #eee;
}
p {
    background: #ccc;
}

根据上面的代码可以看出,b.scss编译后,a.scss直接合并到了编译文件中,但是reset.css仍然保持@import的方式

注释



sass有两种注释方法,一种是标准的css注释方式 /**/,另一种是//双斜杠形式的单行注释,不过这种单行注释不会被编译出来

标准的css注释

/*
*我是css标准注释
*设置p标签背景色
*/

p {
    background: #ccc;
}

双斜杠单行注释

//我是单行注释
//设置p标签背景色
p {
    background: #ccc;
}

变量



sass的变量必须以$开头,后面紧跟变量名,而变量值与变量名之间以冒号“:”隔开(就像设置css属性一样),如果值后面加上!default 则表示默认值;

普通变量

定义之后可以在全局使用它

//sass style

$font-base: 14px;

p {
    font-size: $font-base;
}

//css style

p {
    font-size: 14px;
}

默认变量

sass的默认变量只需要在值后面加上 !default  即可

// sass style

$base-lineHeight: 1.5 !default;
body {
    line-height: $base-lineHeight;
}

//css style

body {
    line-height: 1.5;
}

sass的默认变量一般是用来设置默认值,然后根据需求来覆盖的,覆盖的方式也很简单,只需要重新定义一下就可以了

//sass style
/*
*覆盖的顺序没有限制,可以在默认变量的后面也可以在前面
*/

$base-lineHeight: 1.5 !default;
$base-lineHeight: 2;
body {
    line-height: $base-lineHeight;
}

//css style

body {
    line-height: 2;
}

可以看出编译完成的 line-height: 2; 而不是 line-height: 1.5; 。默认变量的价值在组件化开发的时候非常有用。

特殊变量

一般我们定义的变量都是属性值,可直接使用,但是如果变量作为属性的时候,我们就不能像之前那样使用了,比需要 #{$variable} 的形式使用

//sass style

$border-direction: top !default;
$base-fontSize: 14px !default;
$base-lineHeight: 1.5 !default;

//应用class和属性
.border-#{$border-direction} {
    border-#{$border-direction}: 1px solid #ccc;
}
//应用复杂的属性
body {
    font: #{$base-fontSize}/#{$base-lineHeight};
}
//css style

.border-top {
    border-top: 1px solid #ccc;
}
body {
    font: 14px/1.5;
}

局部变量

sass在3.4版本之前没有类似于局部变量,但是在3.4版本之后就出现了局部变量,类似于函数的定义方式,在大括号之外的变量为全局变量(设置了 !global 变量的例外,一会儿提到),在大括号之内的变量只会作用于大括号范围内的变量;

//sass style
$base-fontSize: 12px;
p {
    $base-fontSize: 14px;
    font-size: $base-fontSize;
}
body {
    font-size: $base-fontSize;
}

//css style
p {
    font-size: 14px;
}
body {
    font-size: 12px;
}

由于在p标签声明的变量是局部变量,所以影响不到外面的变量,body标签的字体大小还是12px;

全局变量

全局变量相对于局部变量,声明变量的位置在大括号外面,或者在大括号内使用了 !global 也会成为全局变量;

//sass style
$base-fontSize: 12px;
p {
    $base-fontSize: 14px !global;
    font-size: $base-fontSize;
}
body {
    font-size: $base-fontSize;
}

//css style
p {
    font-size: 14px;
}
body {
    font-size: 14px;
}
时间: 2024-10-10 13:47:50

sass语法一(变量篇)的相关文章

第一章 Scorpio-CSharp基础语法介绍 变量篇

1. 申请变量时加上 var 证明此变量的作用域为当前作用域,不加var的一律认为是全局变量 2. 预留全局变量 _G 全局table,_G保存了所有全局变量 _VERSION 脚本引擎版本号,暂时全部为master _SCRIPT 脚本引擎对象 3. 脚本内所有数据类型分别为 null bool number string function array table userdata,下面为各类型的申请 null 类型 var a = null bool 类型 var a = true var

sass语法基础知识

文件后缀名 sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号:另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号.而本教程中所说的所有sass文件都指后缀名为scss的文件.在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错. //文件后缀名为sass的语法 body background: #eee font-size:12px p background: #0982c1 //文件后缀名为scss的语法 b

整理下makefile中的语法,变量

最近研读了下u-boot的makefile,其中有不少的语法,变量不甚了解,特此将查找到资料记录! 1. if函数很像GNU的make所支持的条件语句--ifeq(参见前面所述的章节),if函数的语法是: $(if <condition>,<then-part>) 或是 $(if <condition>,<then-part>,<else-part>) 可见,if函数可以包含"else"部分,或是不含.即if函数的参数可以是两

php学习day3--php基本语法与变量

上一篇文章我们说了关于虚拟主机和apache的配置. 这一篇我们开始了解了php的基本语法与变量. 一.php的基本语法 1.php的标识符 php标识符主要有以下三种,第一种是最常见的,也是推荐使用的. //1.第一种 <?php //php内容区域 ?> //2.第二种 <script language="php"> //php内容区域 </script> //3.第三种 <? //php内容区域 ?> 其中第三种要对php跟文件下的

Sass学习之 Sass语法入门--3.混合宏

3.混合宏 混合宏的作用: 相当于把复杂的变量声明集中在一起,免去了单个变量的调用. 声明:@mixin border{} 调用:@include border; 混合宏的分类: 不带参数: @mixin border-radius{ -webkit-border-radius: 5px; border-radius: 5px; } 带参数: //默认有值@mixin border-radius($radius:5px){ -webkit-border-radius: $radius; bord

sass揭秘之变量

全局变量和局部变量 要了解sass或less的变量,有必要先了解下js的变量定义,先来一段js的代码: var a = 1; (function(){ a = 5; })(); console.log(a);//5 上面这段代码,匿名函数里面的a因为没有使用var关键字来定义,所以当我们在函数外打印a的时候,得到的是5,改变了一开始定义的1 var a = 1; (function(){ var a = 5; })(); console.log(a);//1 而这段代码,匿名函数里面的a使用了v

sass语法

Sass介绍: 众所周知,css不是一门编程语言.他没法像js和python那样拥有逻辑处理的能力,甚至导入其他的css文件中的样式都做不到.而Sass就是为了解决css的这些问题.他它允许你使用变量.嵌套规则. mixins.导入等众多功能,并且完全兼容css语法.Sass文件不能直接被网页所识别,写完Sass后,还需要专门的工具转化为css才能使用. Sass文件的后缀名: Sass文件有两种后缀名,一个是scss,一个是sass.不同的后缀名,相应的语法也不一样.这里我们使用scss的后缀

OC点语法和变量作用域

OC点语法和变量作用域 一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObject 4 { 5 int _age;//默认为@protected 6 } 7 8 - (void)setAge:(int)age; 9 - (int)age; 10 11 @end Person类的实现: 1 #import "Person.h" 2 3 @imp

javascript语法基础-变量与函数

三 javascript语法基础-变量与函数 (一)变量的声明与运用 JavaScript中的变量与Java.C等强类型语言有很大区别,虽然在JavaScript中具有字符串.数字等数据类型. 变量申明语句的结构是var保留字加标识符,var和标识符之间用空格隔开. 赋值语句的结构是在变量和需要赋的值之间加上一个等号,例如a=1的含义是将变量a的值指定为1. 变量在定义的时候也可以同时赋值,如var a=1. PS:在变量使用前事先进行声明是个良好的编程习惯,这对将来学习Java等其他语言有帮助