Sass是CSS3语言的扩展,在CSS的基础之上添加了新特性和语法,能省事地写出更好的样式表。Sass引擎是基于Ruby的。

导入Sass文件:

  1. @import "colors" //colors.scss

注释:

  1. //这种注释不会出现在生成的css文件中
  2. /*这种注释内容会出现在css文件中,当当出现在原生CSS不允许的未知,则这些注释会被抹掉*/

变量>>

-->变量声明 

  1. //注意:变量中下划线和中划线表示同一个变量
    $flower-color:#abcdef; //flower-color是一个变量,其值现在是#abcdef
  2. $basic-border:1px solid black; //任何可以用作CSS属性值的赋值都可以作为SASS的变量值
  3. $basic-font:"MyriadPro"Myriad"helveticaNuue"Helvetica//也可以是逗号分割的多个属性值
  4. //与CSS属性不同,变量可以在CSS会泽块定义之外使用。当变量定义在CSS规则块内,那么该变量只能在其子级规则块内使用。

  5. $nav-color:#dadada;
  6. nav{
  7. $width:100px;
  8. width:$width;
  9. color:$nav-color;
  10. }

-->变量引用

凡是CSS属性的标准值可以存在的地方,变量就可以实用。

  1. $flower-color:red; //变量声明
  2. .flower{ //变量引用
  3. border:1px $flower-color solid;
  4. }

嵌套规则>>

-->基本嵌套规则,和一些编程语言很类似很容易理解,群则选择器的嵌套也和CSS语法一样

  1. //CSS 代码,经常重复写选择器
  2. #content article h1{color:#333}
  3. #contetn article p{margin-bottom:1.5em;}
  4. #cojntent aside{background-color:#eee;}
  5.  
  6. //SASS代码,选择器嵌套
  7. #content{
  8. article{
  9. h1{color:#333}
  10. p{margin-bottom:1.5em}
  11. }
  12. aside{background-color:#eee;}
  13. }

-->父选择器的标识符&

  1. article a{
  2. color:blue;
  3. &:hover{color:red} //必须标识父选择器&,否则SASS无法正常工作
  4. }
  5.  
  6. //CSS 代码
  7. article a{color:blue}
  8. article a:hover{color:red}

-->子组合选择器和同层组合选择器:> + ~

这些选择器必须配合其他选择器实用,以制定浏览器仅选择某种特定上下文中的元素。这些选择器可以应用带Sass的规则嵌套中。

  1. article section{margin:5px;}
  2. //用子组合选择器>选择一个元素的直接子元素
  3. article>section{border:1px red solid}
  1. //同层相邻组合选择器+选择元素紧跟着的元素
  2. header + p {font-size:1.1em}
  1. //同层全体组合选择齐齐~,选择跟在元素后的同层元素,不管他们之间间隔了多少其他元素
  2. article ~ article {border:1px solid red;}

-->嵌套属性

除了选择器,属性也可以进行嵌套。

  1. nav{
  2. border:1px solid #ccc{
  3. left:0px;
  4. right:0px;
  5. }
  6. }

虽然属性和选择器嵌套可以大大减少便血量,但当样式表越来越大,这种写法很难保持结构清晰。而处理大量样式的唯一方法就是分拆成多个文件。

混合器>>

  1. @mixin corners{ //用@mixin标识符定义
  2. -moz-border-radius:5px;
  3. -ms-border-radius:5px;
  4. -webkit-border-radius:5px;;
  5. -o-border-radius:5px;
  6. border-radius:5px;
  7. }
  8.  
  9. .calamus{
  10. border:2px solid red;
  11. @include corners; //用@include调用混合器中的所有样式
  12. }
  13.  
  14. //混合器中不仅可以包含css规则还可以包含属性,也可以嵌套
  15.  
  16. //混合器可以传递参数
  17. @maxin link-colors($normal,$hover){
  18. color:$normal;
  19. &:hover{color:$hover}
  20. }
  21.  
  22. a{
  23. @include link-colors(blue,red); //参数的传递
  24. }

继承>>

通过 @extend实现

  1. .error{
  2. border:1px solid red;
  3. color:red;
  4. }
  5. .seriousError{
  6. @extend .error; //继承error的属性值
  7. width:300px;
  8. }

Sass基础语法的更多相关文章

  1. sass笔记-2|Sass基础语法之让样式表更具条理性和可读性

    这一篇主要详述保持sass条理性和可读性的3个最基本方法--嵌套.导入和注释. 零. 变量 变量本身的作用是为了保持属性值的可维护性,把所有需要维护的属性值放在同一个地方,快速更改,处处生效,可谓售后 ...

  2. sass笔记-3|Sass基础语法之样式复用和保持简洁

    上一篇详述了Sass如何嵌套.导入和注释这3个基本方式来保持条理性和可读性,这一篇更进一步地阐述sass保持样式复用和简洁的方式--混合器和选择器继承--这两种方式都能复用样式,使用它们也不难,但一定 ...

  3. Sass的使用和基础语法

    sass安装 官网下载ruby的windows安装包,安装时勾选上添加到环境变量add ruby executables to your path.安装完成后打开命令行,ruby -v输出内容则安装完 ...

  4. sass基础编写流程

    这是之前整理在word上的基础流程 sass是Ruby语言开发的一个用于动态编程css文件的框架 所以sass的运行依赖Ruby环境 所以要先安装Ruby 参见详细教程(安装参照慕课网有详细的教程) ...

  5. 前端利器:SASS基础与Compass入门

    SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让css看起来更像是一门语言,这种特性也被称为“cs ...

  6. [转]前端利器:SASS基础与Compass入门

    [转]前端利器:SASS基础与Compass入门 SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让 ...

  7. sass基础—具体编译步骤及对应命令:详细

    /*基础语法*/h1{ color: red;} /*变量定义*/ $color: red; /*嵌套*/body{ header{ } footer{ }} /*mixin函数*/@mixin al ...

  8. Sass 基础教程

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

  9. sass高级语法的补充

    1. 继承 2.混入 3.函数 我这篇博客需要点基础才能看懂, 但我这篇博客是对上一篇的 sass高级语法 的补充 从这方面来看也无所谓了

随机推荐

  1. Unix commands in Mac OS X

    参考:http://www.renfei.org/blog/mac-os-x-terminal-101.html One command line includes 4 parts: Command ...

  2. FindBugs插件

    在日常开发过程中难免会因为一时疏忽而留下一些Bug,这些Bug就是埋在程序里的定时炸弹,如果不能及时铲除就会导致程序的不稳定,异常或闪退的现象,从而导致用户的体验的下降.那么怎么才能找出这些埋在程序里 ...

  3. mongodb,redis,mysql 简要对比

    本篇内容大部分不是原创,转载的会贴有链接. 准备学习下数据库,想对目前的主流数据库做一个简单的了解分析,就搜集了资料整理到了一块. 当下主流的要数NoSql数据库了,拥有强大的高并发能力. mongo ...

  4. cvc-elt.1: 找不到元素 'beans' 的声明

    这次遇到的这个错误又坑爹又低级 , 是因为网上抄到了错误的xsd搞的. 这是网上抄到的 xsi:schemalocation=" http://www.springframework.org ...

  5. laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块

    Laravel 框架通过 public/.htaccess 文件来让网址不需要 index.php.如果你的服务器是使用 Apache,请确认是否有开启 mod_rewrite 模块.如果 Larav ...

  6. laravel 删除一条migration后要执行composer命令

    Laravel 删除一条migration 字数29 阅读30 评论0 喜欢0 如果迁移已经执行,先回滚php artisan migrate:rollback 然后删除迁移文件,运行composer ...

  7. ssh-keygen+ssh-copy-id无密码登录远程LINUX主机(转载)

    From:http://blog.163.com/lgh_2002/blog/static/44017526201011333227161/ 1.创建公钥和私钥 ligh@local-host$ ss ...

  8. iOS 版本更新检查

    #pragma mark ---------------------------------- #pragma mark -- 检测版本更新 -(void)onCheckVersion { NSDic ...

  9. python输出重定向

    0表示标准输入1表示标准输出2表示标准错误输出> 默认为标准输出重定向,与 1> 相同2>&1 意思是把 标准错误输出 重定向到 标准输出.&>file 意思是 ...

  10. java GUI之事件处理

    常见事件及相应事件源类型 事件源 用户操作 事件 JButton 点击按钮 ActionEvent JTextField 在文本域按回车键 ActionEvent JCheckBox 点击复选框 Ac ...