sass可以使用变量,采用 $ 来进行变量声明,格式为:

$highlight-color:#f90;(声明方式和css属性声明类似。使用的变量名可以更加语义化)

与js分为全局变量和局部变量类似,sass定义在规则块之外的变量,该变量均可被使用。而定义在规则块之内的变量只能在规则块内部使用,此时,其他规则块声明新的名字相同的变量。
例:
$nav-color:#f90;
nav{
$width:100px;
width:$width;
color:$nav-color;
}
编译后:
nav{
width:100px;
color:#f90;
}

变量值除了被引用外,还可以引用其他变量值;
例:
$highlight-color:#f90'
$highlight-border:11px solid $highlight-color;
.selected{
border:$highlight-border;
}
编译后:
.selecter{
border:1px solid #f90;
}

变量名可以用中划线和下划线,通常用中划线更普遍,两者可以相互兼容。

嵌套:
sass的嵌套功能可以减少很多重复的工作。
例:
#content{
article{
h2{ color:#333}
p{ margin-bottom:1.4em}
}
aside{background-color:#eee}
}
编译后:
#content article h2{color:#333}
#content article p{ margin-bottom:1.4em}
#content aside{background-color:#eee}

如果出现伪类,如 hover:,则需要使用特殊结构&。&有一个替换的功能。
例:
article a{
color:blue;
$:hover{ color:red}
}
编译后
article a{color:blue}
arbicle a :hover{color:blue}

如果没有$,则article内连接的所有子元素在被hover时均变成红色。

$的使用例二:
#content aside {
color:red;
body.ie ${color:green}
}
编译后:
#content aside{color:red}
body.ie #content aside{color:green}

群组选择器也可以进行嵌套。
.container{
h1,h2,h3{margin-bottom: .8em}
}

子组合选择器和同城组合选择器:>、+、~
>:选择一个元素的直接子元素;article>section{border:1px solid #ccc};article的section子元素。
+:选择一个元素后紧跟的某个元素;header+p{fonr-size:1em};header后面紧跟的p与元素。
~:选择一个原色同层的全体某个元素。article~article{border:1px daseed #ccc};article同层的全部article元素。

除了嵌套选择器,sass也可以嵌套属性。
例:nav{
border:{
style:solid;
width:12px'
color:#fff
}
}
例二:
nav{
border:1px solid red{
left:solid;
right:12px'
}
}

@import的在sass的使用:
原声css也可以使用@import,但是是在执行到@import的时候才会加载,速度慢。而sass的在生成css文件的时候就把相关文件导入进来,比较快。
sass中@import的使用方法是:“@import 文件名”
文件可以是sass文件,也可以是scss文件。当需要导入的是css文件时候,为了被认为是原生css中的@import的使用,需要将css文件后缀改为sass或者scss。如果要导入的文件不希望单独生成独立的css
文件,这样的sass文件为局部文件,命名时在文件名前加一个下划线,在引入的时候不用写出下划线和后缀名。

!default的使用:与css中的!important相反,当变量在前面已经被声明过了,在后面引用赋值时出现
!default时,变量值使用之前声明的值,否则使用后面的默认值。

sass的注释方法有两种:
1://(在一行以内,在css中不会出现)
2:/*.....*/(不限制一行,在css中会被看见,若写在大括号里面等不利于sass转化css的地方,在css中
也不会出现)

sass初步认识2的更多相关文章

  1. sass初步认识3

    sass的混合器是对大段的样式代码进行命名,定义为混合器,以便被多次引用.混合器的格式为:“@mixin 样式名称{样式代码}”:调用混合器的格式为:“@include 样式名称”.例:@minin ...

  2. sass初步认识1

    sass是一种“css预处理器”,同类的还有less等,方法类似.css预处理器的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的css文件. 使用sass需要先暗转RUBY,再 ...

  3. CSS预处理器——Sass、LESS和Stylus实践

    CSS(Cascading Style Sheet)被译为级联样式表,做为一名前端从业人员来说,这个专业名词并不陌生,在行业中通常称之为“风格样式表(Style Sheet)”,它主要是用来进行网页风 ...

  4. vue-cli + sass 的正确打开方式

    关于在vue-cli搭建的项目中怎么配置sass,网上搜到的基本是这种答案: 但是我认为,直接将样式写在每个单文件的<style>里,是十分不明智的做法.且不说node-sass安装过程的 ...

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

    这篇文章是初步介绍css预处理的,详细学习请移步官网~ 什么是css预处理器 CSS 预处理器是一种语言, 通俗易懂的话来说就是“用一种专门的编程语言,进行 Web 页面样式编写,再通过编译器转化为正 ...

  6. sass、less是什么,如何使用?

    一个很好的介绍的SASS,LESS的区别的文档,值get 1.背景介绍 CSS 是一门非程序式语言,没有变量.函数.SCOPE(作用域),需要书写大量看似没有逻辑的代码,不方便维护及扩 展,不利于复用 ...

  7. nginx配置初步

    nginx配置初步 1,切换至nginx目录,找到配置文件目录 cd /etc/nginx/conf.d 2,拷贝一份conf文件 sudo cp default.conf head.conf 3,进 ...

  8. 前段集成解决方案grunt+yeoman初步认识

    1.什么是前段集成解决方案? 将前端研发领域中各种分散的技术元素集中在一起,并对常见的前端开发问题.不足.缺陷和需求,所提出的一种解决问题的方案 2.yeoman 应用的架构,模型!  相当于一个生成 ...

  9. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

随机推荐

  1. 使用Jquery+EasyUI 进行框架项目开发案例讲解之三---角色管理源码分享

    使用Jquery+EasyUI 进行框架项目开发案例讲解之三 角色管理源码分享    在上两篇文章  <使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享> ...

  2. python gzip,bz2学习

    一.gzip import gzip 1.解压缩 a = gzip.open('a.tar.gz') b = open('a.tar','wb') b.write(a.read()) a.close( ...

  3. 部署基于JDK的webservice服务类

    部署服务端 两个注解(@WebService @WebMethod).一个类(Endpoint) 首先新建JAVA工程ws-server 目录结构如下 在工程里新建一个接口,申明一个方法. packa ...

  4. Lintcode: Segment Tree Modify

    For a Maximum Segment Tree, which each node has an extra value max to store the maximum value in thi ...

  5. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. java通过LinkedList实现堆栈和队列数据结构

    package shb.java.demo3; import java.util.LinkedList; public class TestLinkedList { /** * @author sha ...

  7. oracle中的常用语句

    1:查看当前用户的缺省表空间 SELECT USERNAME, DEFAULT_TABLESPACE FROM USER_USERS; 2:查看当前用户的角色 SELECT * FROM USER_R ...

  8. archlinux安装输入法需要的包及archlinux无法使用输入法的解决

    所需的包: fcitx #这货应该是主要的程序 fcitx-configtool #图形化的配置工具,非必须 fcitx-gtk2 fcitx-gtk3 fcitx-qt4 fcitx-qt5 fci ...

  9. 开源软件free download manager在windows defender中报毒

    从官网上下载的fdm lite 3.9.6,从图片中可以看出安装包有数字签名,windows defender报毒,在线杀毒也检出木马,官网的程序更新到了3.9.6版本,在sourceforge上的源 ...

  10. 各种类型的Writable(Text、ByteWritable、NullWritable、ObjectWritable、GenericWritable、ArrayWritable、MapWritable、SortedMapWritable)转

    java原生类型 除char类型以外,所有的原生类型都有对应的Writable类,并且通过get和set方法可以他们的值. IntWritable和LongWritable还有对应的变长VIntWri ...