sass的核心知识及使用

sass的官方链接地址:htpp://sass-lang.com

参考链接地址:http://www.haorooms.com/post/sass_css

1. 基础语法
1.1 变量
SASS允许使用变量,所有变量以$开头
$blue : blue;
div {
    color:$blue;
}
如果变量需要镶嵌在字符串中,就必须要写在 #{} 中
$side:left;
.rounded {
    border-#{$side}-radius:5px;
}
1.2 计算功能
SASS允许在代码中使用计算式:
body {
    margin:(14px/2);
    top:50px+100px;
    right:$var*10%
}
1.3 嵌套
SASS允许选择器嵌套,比如下面的css代码:
div h1 {
    color:red;
}
//可以写成:
div {
    h1 {
        color:red;
    }
}
//属性也可以嵌套,比如 border-color 属性,可以写成:
p {
    border:{
        color:red;
    }
}
//注意:border后面必须加上冒号
在嵌套的代码块内,可以使用 & 引用父元素,比如 a:hover 伪类,可以写成:
a {
    &:hover {
        color:red
    }
}
1.4 注释
SASS 共有两种注释风格。
//注释,只保留在SASS源文件中
/*注释*/,会保留到编译后的 css 文件中
/*!
    重要注释!,即使是压缩模式编译,也会保留这行注释
*/
2. 代码的重用
2.1 继承
SASS允许使用一个选择器,继承另一个选择器,比如 class1 :
.class1 {
    border:1px solid #ddd;
}
class2 要继承 class1,就要使用 @extend 命令:
.class2 {
    @extend .class1;
    font-size:120%;
 }
2.2 mixin
mixin有点像C语言中的宏(marco),是可以重用的代码块。 使用 @mixin 命令,定义一个代码块:
@mixin left {
    float:left;
    margin-left:10px;
}
使用 @include 命令,调用这个 mixin:
div {
    @include left;
}
mixin的请打之处,在于可以指定参数和缺省值:
@mixin left($value:10px){
    float:left;
    margin-right:$value;
}
使用的时候,根据需要加入参数:
div {
    @include left(20px);
}
下面是一个 mixin 的实例,用来生成浏览器前缀:
@mixin rounded($vert,$horz,$radius:10px){
    border-#{$vert}-#{$horz}-radius:$radius;
    -moz-border-#{$vert}-#{horz}-radius:$radius;
    -webkit-border-#{$vert}-#{$horz}-radius:$radius;
}
使用的时候,可以像下面这样调用:
#navbar li {
    @include rounded(top,left);
}
//或者
#footer {
    @include rounded(top,left,5px);
}
2.3 颜色函数
SASS提供了一些内置的颜色函数,以便生成系列颜色:
lighten(#cc3,10%);//#d6d65c
darken(#cc3,10%);//#a3a3a3
grayscale(#ccs);//#808080
complement(#cc3);//#33c
2.4 插入文件
@import 命令,用来插入外部文件:
@import "path/filename.scss";
如果插入的是 .css 文件,则等同于css的import命令。
@import "foo.css";
3.高级用法
3.1 条件语句
@if可以用来判断:
p {
    @if 1+1==2{border:1px solid;}
    @if 5<3 {border:2px dotted;}
}
配套的还有 @else 命令:
@if lightness($color) > 30% {
    background-color:#000;
}@else{
    background-color:#fff;
}
3.2 循环语句
SASS 支持 for 循环:
@for $i from 1 to 10 {
    .border-#{$i}{
        border:#{$i}px solid blue;
    }
}
SASS 也支持 while 循环:
$i:6;
    @while $i>0 {
        .item-#{$i} {width:2em * $i;}
        $i:$i - 2;
    }
each 命令,作用与 for 类似:
@each $member in a,b,c,d {
    .#($member) {
        background-image:url("/image/#{$member}.jpg");
    }
}
3.3 自定义函数
SASS 允许用户编写自己的函数:
@function double($n){
    @return $n * 2;
}
#sidebar {
    width:double(5px);
}
4. 使用
可以在屏幕上显示 .scss 文件转化的 css 代码
sass test.scss
如果要将显示结果保存成文件,后面再跟一个 .css 文件名
sass test.scss test.css
SASS提供了四中编译风格:
nested:嵌套缩进的 css 代码,它是默认值
expanded:没有缩进的,扩展的 css 代码
compact:简洁格式的 css 代码
compressed:压缩后的 css 代码
生产环境中,一般使用最后一个选项:
sass --style compressed test.scss test.css
也可以让 SASS 监听某个文件或者目录,一旦源文件有变动,就自动生成编译后的版本:
//watch a file
sass --watch input.scss:output.css
//watch a directory
sass --watch app/sass:public/stylesheets
SASS的官方网站,提供一个在线转换器,可以用来练习和测试。

用别人的只是点,借花献佛,markdown 不错,用着很顺手。

时间: 2024-12-16 04:35:46

sass的核心知识及使用的相关文章

spring核心知识(学习心得)

直接进入主题,主要分为两大部分:框架学习心得和spring框架的核心知识. 学习心得 1.学习框架的时候,一定要弄清楚的几个问题: a. 这是一个什么框架 轻量级还是重量级, 侵入式还是非侵入式,是解决单个问题还是整体的解决方案. b. 框架的设计理念是什么(为了解决什么问题而出现) c. 框架的优缺点 d. 框架的架构是怎样的 e. 框架的核心是什么 f. 框架能实现哪些功能 在学习一个框架的时候如果都不知道它能够提供哪些功能,就更加不用谈功能实现和充分利用框架了 2. 在学习多个框架以后,如

网络基础知识、ASP.NET 核心知识(1)*

为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发人员,你所开发的软件产品最终是要在网络上运行的.这就像一个生产商,要生产供给东北地区的产品,而生产商对东北的天气.地理.人文毫无了解.生产商的产品肯定是不可用的,或者低端的!产品质量不好,那是自然的.产品质量好,那算你点儿高.那么作为ASP.NET开发人员,如果一点不懂http协议.不晓得Ajax.

【汇总】Python 编程核心知识体系

[汇总]Python 编程核心知识体系 大神著作,源自:https://woaielf.github.io/2017/06/13/python3-all/ 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库,后续会发布相应专题的文章). 首先,按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条件&循环,文件对象,错误&异常,函数,模块,面向对象编程: 接着,结合这些思维导图主要参考的资料,分享一下我的学习体验,一方面

给你一份Spring Boot核心知识清单①-1

预警:本文非常长,建议先mark后看,也许是最后一次写这么长的文章 由于51博客对文章字符数的限制,不得已分成两篇文章 说明:前面有4个小节关于Spring的基础知识,分别是:IOC容器.JavaConfig.事件监听.SpringFactoriesLoader详解,它们占据了本文的大部分内容,虽然它们之间可能没有太多的联系,但这些知识对于理解Spring Boot的核心原理至关重要,如果你对Spring框架烂熟于心,完全可以跳过这4个小节.正是因为这个系列的文章是由这些看似不相关的知识点组成,

Hadoop新手学习指导之hadoop核心知识学习

上篇(Hadoop新手学习指导之入门需知)我们介绍了新手学习hadoop的入门注意事项.这篇来谈谈hadoop核心知识学习. hadoop核心知识学习: hadoop分为hadoop1.X和hadoop2.X,并且还有hadoop生态系统.这里只能慢慢介绍了.一口也吃不成胖子. 那么下面我们以hadoop2.x为例进行详细介绍: Hadoop的核心是mapreduce和hdfs. Mapreduce:mapreduce是很多人都需要迈过去的槛,它比较难以理解,我们有时候即使写出了mapreduc

大数据Hadoop核心知识入门学习注意事项

今天来介绍新手学习hadoop的入门注意事项.这篇文章一来谈谈hadoop核心知识学习. 首先hadoop分为hadoop1.X和hadoop2.X,并且还有hadoop生态系统,那么下面我们以hadoop2.x为例进行详细介绍: Hadoop的核心是mapreduce和hdfs. Mapreduce:mapreduce是很多人都需要迈过去的槛,它比较难以理解,我们有时候即使写出了mapreduce程序,但是还是摸不着头脑.我们都知道mapreduce是一种编程模型,那么它能干什么,对我有什么用

01:计算机硬件组层与基本配置------02计算机系统硬件核心知识

第一章:如何学习Linux 一看,二听,三记,四思考,五交流讨论,六教会别人,七实战 第二章:服务器 2.1 运维的基本职责 网站的数据不能丢 网站7*24小时运行 提升用户体验 要求服务器 稳 定 性 比普通家用机高. 运维人员的原则: 简 单 , 易 用 , 高 效 2.2 大家工作的主战场 功能:搭建网站所使用的服务器,相对于其他台式机,笔记本电脑来说, 更 加 稳 定 , 更 加 可 靠 . 简介:服务器,也称伺服器(台湾),是提供计算服务的设备.在处理能力,稳定性,可靠性,安全性,可扩

开发技术--Python核心知识A

开发|Python核心知识A A篇,主要介绍Python基础中列表,元祖,字典,集合,字符串,I/O,条件与循环,异常处理的底层知识与使用的注意事项. 希望大家对于Python会有新的收获,本篇不同于之前的浅谈Python基础知识,会更加的深入,但是在深入的同时,涉及更多内容,需要自行看源码,着重点我会标明. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 正文 由于本文不

Java并发编程核心知识体系精讲

第1章 开宗明义[不看错过一个亿]本章一连串设问:为什么学并发编程?学并发编程痛点?谁适合学习本课?本课程包含内容和亮点?首先4大个理由告诉你为什么要学,其实源于JD岗位要求就不得不服了.其次5个痛点+12个亮点,是否说服你要死磕Java并发编程呢?... 第2章 跨越第一座山“线程八大核心”[适用于纵观全貌]八大核心-序章.从本章开始将带你攻克并发编程领域的“第一座大山”:多线程八大核心. 第3章 核心1:实现多线程的正确姿势[解读官方文档,够权威]相信很多小伙伴经常在各大技术博客或者论坛甚至