目录
1、安装Ruby
2、安装sass
 1、编译
2、语法
2.1、注释
2.2、变量
2.3、嵌套
2.4、Less css片段和引入
2.5、mixin 重用代码块
2.6、继承 
2.7、运算符 
2.8、颜色 
3、高级语法 
3.1、条件 
3.2、 循环语句
3.3自定义函数
首页 web前端 html教程 sass入门_html/css_WEB-ITnose

sass入门_html/css_WEB-ITnose

Jun 24, 2016 am 11:25 AM

SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单可维护

SASS 官网介绍:

sass is the most mature(成熟的),stable(稳定的),and powerful professional grade CSS extension language in the world.

官方文档:

http://sass-lang.com/documentation/file.SASS_REFERENCE.html

初学sass 遇到的最大阻碍可能是:需要搭建Ruby的运行环境和需要用命令行,其实这都非常简单。

一、安装

1、安装Ruby

SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用。只是必须先安装Ruby,然后再安装SASS。

安装SASS请参考SASS官方网站:  http://sass-lang.com/install,windows下安装ruby:rubyinstaller.org。

安装时注意一点:勾选Add Ruby executables to your PATH,添加Ruby可执行路径到环境变量再安装。

安装成功Dos窗口输入ruby -v会出现版本信息。

2、安装sass

假定你已经安装好了Ruby,接着在命令行输入下面的命令:gem install sass

安装成功输入sass -v可以看到版本信息。

 

二、使用

 1、编译

Note:注意sass的文件名后缀是scss而不是sass。

将style.scss编译成css

sass style.scss
登录后复制

将style.scss编译后保存成css文件

sass style.scss style.css
登录后复制

将style.scss编译后保存成压缩过的css文件

sass <strong>--style compressed</strong> style.scss style.css
登录后复制

--style控制编译风格,可选参数如下

  • nested:嵌套缩进的css代码,它是默认值。
  • expanded:没有缩进的、扩展的css代码。
  • compact:简洁格式的css代码。
  • compressed:压缩后的css代码。
  • sass监听文件或目录,源文件有变动,自动编译。

    // watch a filesass --watch input.scss:output.css// watch a directorysass --watch app/sass:public/stylesheetss
    登录后复制

    2、语法

    2.1、注释

    和less一样,sass有两张注释

    // 单行注释,不会作为最终输出/*     多行注释,以原生CSS的/*注释....*/形式作为最终输出 */
    登录后复制

    在/*后面加一个感叹号,表示这是"重要注释"。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。

    /*!    重要注释!*/
    登录后复制

    2.2、变量

    一般会把颜色,字体,将来会重用的css值存为变量,方便统一修改和维护。

    //定义变量$primary-color:#333;//变量调用body{    color:$primary-color;}
    登录后复制

    如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。

    $side : left;.rounded{    border-#{$side}-radius:5px;}
    登录后复制

    2.3、嵌套

    像html标签嵌套一样进行选择器嵌套写css,但是在生成css时有利有弊。

    以下经典用法。

    nav {  ul {    margin: 0;    padding: 0;    list-style: none;  }  li { display: inline-block; }  a {    display: block;    padding: 6px 12px;    text-decoration: none;  }}
    登录后复制

    会生成:

    nav ul {  margin: 0;  padding: 0;  list-style: none; }nav li {  display: inline-block; }nav a {  display: block;  padding: 6px 12px;  text-decoration: none; }
    登录后复制

    属性也可以嵌套,比如border-color属性如下,border后面必须加冒号。

    p{   border:{        color:red;    }}
    登录后复制

    在嵌套的代码块内,可以使用&引用父元素。比如a:hover伪类,可以写成:

    a{    &:hover{color:red;}}
    登录后复制

    2.4、Less css片段和引入

    目的:方便模块化和管理,小模块可维护性好。最终编译成一个css文件,这点比纯css的@import好。

    弊端:多一个@import就多一个http请求。

    片段命名:_partial.scss,引入用@import。

    Demo:将_reset.scss import到base.scss。

    _reset.scss如下

    // _reset.scsshtml,body,ul,ol {   margin: 0;  padding: 0;}
    登录后复制

    base.scss如下

    // base.scss@import 'reset';<br />body {  font: 100% Helvetica, sans-serif;  background-color: #efefef;}
    登录后复制

    @import 'reset'即可。

    2.5、mixin 重用代码块

    在sass中可用定义重用的代码块,且可传参数,方便日后根据需求调用。

    定义:通过@minxin name即可定义一个重复利用的样式。

    调用:@include name

    demo:

    // mixin@mixin box($H:30px,$col:red){    height:$H;    background-color:$col;}div.box{    @include box; //使用默认值}div.box1{    @include box(50px,blue); //传参}
    登录后复制

    编译结果:

    div.box {  height: 30px;  background-color: red; }div.box1 {  height: 50px;  background-color: blue; }
    登录后复制

    css中有一些浏览器兼容性的代码,一些css3私有前缀等,此时使用mixins非常便捷,一个经典例子border-radius如下。

    @mixin border-radius($radius){    -webkit-border-radius: $radius;    -moz-border-radius: $radius;    -ms-border-radius: $radius;          border-radius: $radius;}.box{@include border-radius(10px);}
    登录后复制

    2.6、继承

    继承让一个选择器的样式被另一个选择器复用和覆盖。是一个DRY的语法,也最sass中有用的语法之一。

    语法:@extend 选择器

    demo:一系列提示信息。

    .message{    border:1px solid #ccc;    padding:10px;    color:#333;}.success{    @extend .message;    border-color:green;}.error{    @extend .message;    border-color:red;}.warning{    @extend .message;    border-color:yellow;}
    登录后复制

    编译后的css【继承实现了css组合声明】

    .message, .success, .error, .warning {  border: 1px solid #ccc;  padding: 10px;  color: #333; }.success {  border-color: green; }.error {  border-color: red; }.warning {  border-color: yellow; }
    登录后复制

    2.7、运算符

    包括+,-,*,、,%。

    demo:计算aside和article的宽度。

    .container{    width:100%;}article[role="main"]{    float:left;    width:600px/960px*100%;}aside[role="complimentary"]{    float:right;    width:300px/960px*100%;}
    登录后复制

    编译后css

    .container {  width: 100%; }article[role="main"] {  float: left;  width: 62.5%; }aside[role="complimentary"] {  float: right;  width: 31.25%; }
    登录后复制

    2.8、颜色

    sass中集成了大量的颜色函数,让生成颜色更加简单

    lighten(#cc3, 10%) // #d6d65cdarken(#cc3, 10%) // #a3a329grayscale(#cc3) // #808080complement(#cc3) // #33c
    登录后复制

    demo:

    $linkColor: #08c;a {    text-decoration:none;    color:$linkColor;    &:hover{      color:darken($linkColor,10%);    }}
    登录后复制

    编译成css

    a {  text-decoration: none;  color: #08c; }a:hover {  color: #006699; }
    登录后复制

    3、高级语法

    3.1、条件

    if判断何种条件用何种样式。

    p{    @if 1+1==2{border:1px solid red;}    @if 5<2 {border:2px dotted red;}}
    登录后复制

    if,else配合使用。

    demo:判断颜色中亮度大于30%,设置背景色为黑色,否则为白色。

    $color : #1875e7;p{    @if lightness($color)>30%{        background-color:#000;    }@else {        background-color:#fff;    }}
    登录后复制

    备注:lightness($color):从一个颜色中获取亮度(lightness)值;

    3.2、 循环语句

    for循环

    @for $i from 1 to 10{    .border-#{$i}{        border:#{$i}px solid blue;    }}
    登录后复制

    编译生成如下css

    .border-1 { border: 1px solid blue; }.border-2 {border: 2px solid blue; }.border-3 {border: 3px solid blue; }.border-4 {border: 4px solid blue; }.border-5 {border: 5px solid blue; }.border-6 {border: 6px solid blue; }.border-7 {border: 7px solid blue; }.border-8 {border: 8px solid blue; }.border-9 {border: 9px solid blue; }
    登录后复制

    while循环

    $i : 6;@while $i > 0{    .item-#{$i} {width:2em * $i;}    $i : $i - 2;}
    登录后复制

    编译成css

    .item-6 {width: 12em; }.item-4 {width: 8em; }.item-2 {width: 4em; }
    登录后复制

    each遍历

    @each $member in a,b,c,d{    .#{$member}{        background-image:url("images/#{$member}.jpg");    }}
    登录后复制

    编译成css

    .a {background-image: url("images/a.jpg"); }.b {background-image: url("images/b.jpg"); }.c {background-image: url("images/c.jpg"); }.d {background-image: url("images/d.jpg"); }
    登录后复制

    3.3自定义函数

    sass可自定义函数。

    @function double($n){    @return $n * 2;}#sidebar{    width:double(5px);}
    登录后复制

    编译后css

    #sidebar {width: 10px; }
    登录后复制

     

    资源链接: 

    http://sass-lang.com/guide

    http://www.w3cplus.com/sassguide/ 

     

    本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:有问题欢迎与我讨论,共同进步。

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    HTML容易为初学者学习吗? HTML容易为初学者学习吗? Apr 07, 2025 am 12:11 AM

    HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

    HTML,CSS和JavaScript的角色:核心职责 HTML,CSS和JavaScript的角色:核心职责 Apr 08, 2025 pm 07:05 PM

    HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

    HTML中起始标签的示例是什么? HTML中起始标签的示例是什么? Apr 06, 2025 am 12:04 AM

    AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

    了解HTML,CSS和JavaScript:初学者指南 了解HTML,CSS和JavaScript:初学者指南 Apr 12, 2025 am 12:02 AM

    WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

    Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Apr 04, 2025 pm 11:54 PM

    GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

    网页批注如何实现Y轴位置的自适应布局? 网页批注如何实现Y轴位置的自适应布局? Apr 04, 2025 pm 11:30 PM

    网页批注功能的Y轴位置自适应算法本文将探讨如何实现类似Word文档的批注功能,特别是如何处理批注之间的间�...

    如何用CSS3和JavaScript实现图片点击后周围图片散开并放大效果? 如何用CSS3和JavaScript实现图片点击后周围图片散开并放大效果? Apr 05, 2025 am 06:15 AM

    实现图片点击后周围图片散开并放大效果许多网页设计中,需要实现一种交互效果:点击某张图片,使其周围的...

    HTML,CSS和JavaScript:Web开发人员的基本工具 HTML,CSS和JavaScript:Web开发人员的基本工具 Apr 09, 2025 am 12:12 AM

    HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

    See all articles