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:;
}
可以看出编译完成的 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;
}
sass语法一(变量篇)的更多相关文章
- SASS:sass语法参照列表及教程
http://sass-lang.com/documentation/file.SASS_REFERENCE.html 保存一下,上面的链接包括了scss中所有语法规则. 转载自:http://www ...
- sass揭秘之变量(转载)
出处:http://www.w3cplus.com/preprocessor/sass-basic-variable.html 因为文章内含有很多sass代码,如需自己动手查看编译结果,推荐使用sas ...
- SASS语法备忘
sass语法 关于sass 3.3.0更新说明——3.3.0 sublime相关插件为:scss语法高亮,sass语法高亮,编译,保存即编译,格式化 文件后缀名 sass有两种后缀名文件:一种后缀名为 ...
- 学习 JavaScript (三)核心概念:语法、变量、数据类型
JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道 ...
- sass语法(1)
文件后缀名 sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号:另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号 //文件后缀名为sass ...
- 项目开发---使用node.js中sass语法
前言:本文中所有sass文件都指后缀名为scss的文件.在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错. 一.sass插件的安装: gulp-sass-china // ...
- 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式
本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式
- 【ABAP系列】SAP ABAP7.40新语法简介第二篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...
- SASS - 语法
SASS – 简介 SASS – 环境搭建 SASS – 使用Sass程序 SASS – 语法 SASS – 变量 SASS- 局部文件(Partial) SASS – 混合(Mixin) SASS ...
随机推荐
- leetcode-119-Pascal's Triangle II(生成某一行的帕斯卡三角形)
题目描述: Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle ...
- 题目1016:火星A+B(字符串拆分)
问题来源 http://ac.jobdu.com/problem.php?pid=1016 问题描述 每次输入两个数,不同数位之间用逗号隔开,其中,第n位的进制就是第n个素数,即个位数是2进制的,十位 ...
- Maven web项目(简单的表单提交) 搭建(eclipse)
我们将会搭建一个,基于Maven管理的,具有简单的表单提交功能的web项目,使用DAO--service--WEB三层结构,服务器使用Tomcat 1 项目基本结构的搭建 左上角File---> ...
- [Alpha]Scrum Meeting#6
github 本次会议项目由PM召开,时间为4月8日晚上10点30分 时长25分钟 任务表格 人员 昨日工作 下一步工作 木鬼 整理开会记录 撰写并发布之前因为清明耽误的博客 SiMrua 寻找方法捕 ...
- 【中间件】Struts2系列漏洞POC小结
#Struts2-045 ''' CVE-2017-5638 影响范围:Struts 2.3.5 – Struts 2.3.31,Struts 2.5 – Struts 2.5.10 触发条件:基于J ...
- FreeRTOS-01移植及任务创建和删除
根据正点原子FreeRTOS视频整理 单片机:STM32F207VC FreeRTOS源码版本:v10.0.1 任务创建和删除API函数: 工程列表: 1. main.c /**/ #include ...
- genkins的报错排查
[ERROR] /root/.jenkins/workspace/car/src/main/java/com/zhengxin/tool/code/Code.java:[20,64] diamond ...
- 对java的理解
一门编程语言,分三部分. 核心语法,库,数据结构.
- 【linux】如何查看文件的创建、修改时间
本篇博文旨在介绍Linux下查看文件时间的方法:并介绍如何使用touch指令来进行文件时间的创建以及修改 如何查看文件的时间信息利用stat指令查看文件信息 三种时间的介绍ATime ——文件的最近访 ...
- win10安装ubuntu子系统配置
# 更改apt源 cat > /etc/apt/sources.list <<'END' #阿里云 deb http://mirrors.aliyun.com/ubuntu/ tru ...