• 更好的为变量命名

变量是Sass中最简单的特性之一,但有时候也会使用不当。创建站点范围内有语义化的变量,是不可或缺的工作。如果命名不好,他会变得难以理解和重复使用。

这里有一些命名变量的小技巧,提供参考:

  • 命名变量时不要含糊不清
  • 坚持一种命名规则(Modular, BEM等等)
  • 确定变量的使用是有道理的

这有一个好的示例:

  1. $orange: #ffa600;
  2. $grey: #f3f3f3;
  3. $blue: #82d2e5;
  4.  
  5. $link-primary: $orange;
  6. $link-secondary: $blue;
  7. $link-tertiary: $grey;
  8.  
  9. $radius-button: 5px;
  10. $radius-tab: 5px;

这个是不好的示例:

  1. $link: #ffa600;
  2. $listStyle: none;
  3. $radius: 5px;

  

  • 减少Mixins的使用

Mixins是实现代码块的一种伟大方式,可以在一个站点内多次使用。然而,@include定义好的Mixins和在CSS代码中复制、粘贴没什么不一样。它将会让你的CSS代码生成很多重复的代码,让你的文件变得越来越臃肿。

到目前为止,Mixins只适合那种需要通过传递参数来快速创建样式的情形。

例如:

  1. @mixin rounded-corner($arc) {
  2. -moz-border-radius: $arc;
  3. -webkit-border-radius: $arc;
  4. border-radius: $arc;
  5. }

rounded-corner这个Mixins可以在任何情况下使用,仅仅通过改变其参数$arc的值,将得到不同的代码:

  1. .tab-button {
  2. @include rounded-corner(5px);
  3. }
  4.  
  5. .cta-button {
  6. @include rounded-corner(8px);
  7. }

像这样使用Mixins是不明智的:

  1. @mixin cta-button {
  2. padding: 10px;
  3. color: #fff;
  4. background-color: red;
  5. font-size: 14px;
  6. width: 150px;
  7. margin: 5px 0;
  8. text-align: center;
  9. display: block;
  10. }

这个Mixins没有传递任何参数,更建议使用%placeholder来创建,这也是接下来要说的下一点。

  • 拥抱Placeholder

与Mixins不同,%placeholder也可以多次使用,而且不会生成重复的代码。这使得输入的CSS更友好,更干净。

  1. %bg-image {
  2. width: 100%;
  3. background-position: center center;
  4. background-size: cover;
  5. background-repeat: no-repeat;
  6. }
  7.  
  8. .image-one {
  9. @extend %bg-image;
  10. background-image:url(/img/image-one.jpg");
  11. }
  12.  
  13. .image-two {
  14. @extend %bg-image;
  15. background-image:url(/img/image-two.jpg");
  16. }

编译出来的CSS:

  1. .image-one, .image-two {
  2. width: 100%;
  3. background-position: center center;
  4. background-size: cover;
  5. background-repeat: no-repeat;
  6. }
  7.  
  8. .image-one {
  9. background-image:url(/img/image-one.jpg") ;
  10. }
  11.  
  12. .image-two {
  13. background-image:url(/img/image-two.jpg") ;
  14. }

多个选择器运用了相同的%placeholder也只会输出一次代码。没有引用的%placeholder是不会输出任何CSS代码。

和之前的Mixins配合在一起使用,既可保持Mixins灵活性,而且还可以保持代码的简洁与干净。

  1. /* PLACEHOLDER
  2. ============================================= */
  3.  
  4. %btn {
  5. padding: 10px;
  6. color:#fff;
  7. curser: pointer;
  8. border: none;
  9. shadow: none;
  10. font-size: 14px;
  11. width: 150px;
  12. margin: 5px 0;
  13. text-align: center;
  14. display: block;
  15. }
  16.  
  17. /* BUTTON MIXIN
  18. ============================================= */
  19.  
  20. @mixin btn-background($btn-background) {
  21. @extend %btn;
  22. background-color: $btn-background;
  23. &:hover {
  24. background-color: lighten($btn-background,10%);
  25. }
  26. }
  27.  
  28. /* BUTTONS
  29. ============================================= */
  30.  
  31. .cta-btn {
  32. @include btn-background(green);
  33. }
  34.  
  35. .main-btn {
  36. @include btn-background(orange);
  37. }
  38.  
  39. .info-btn {
  40. @include btn-background(blue);
  41. }

  

编写SASS的一些技巧的更多相关文章

  1. Python 内编写类的各种技巧和方法

    Python 内编写类的各种技巧和方法 简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象 ...

  2. Python中编写类的各种技巧和方法

    简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling). 你可以把它当作一 ...

  3. Lua 学习 chapter30 编写c函数的技巧 - Jow的博客

    目录 数组操作 字符串操作 在c函数中保存状态 生活总需要一点仪式感,然后慢慢的像那个趋向完美的自己靠近. 数组操作 Lua中的数组就是以特殊的方式使用边.像lua_setttable and lua ...

  4. Step By Step(编写C函数的技巧)

    Step By Step(编写C函数的技巧) 1. 数组操作:    在Lua中,"数组"只是table的一个别名,是指以一种特殊的方法来使用table.出于性能原因,Lua的C ...

  5. Android中实时预览UI和编写UI的各种技巧

    一.啰嗦 之前有读者反馈说,你搞这个所谓的最佳实践,每篇文章最后就给了一个库,感觉不是很高大上.其实,我在写这个系列之初就有想过这个问题.我的目的是:给出最实用的库来帮助我们开发,并且尽可能地说明这个 ...

  6. 编写javascript的基本技巧一

    自己从事前端编码也有两年有余啦,时间总是比想象中流逝的快.岁月啊,请给我把时间的 脚步停下吧.不过,这是不可能的,我在这里不是抒发时间流逝的感慨.而是想在这分享两 年来码农生活的一些javascrip ...

  7. JavaScript 如何工作的: 事件循环和异步编程的崛起 + 5 个关于如何使用 async/await 编写更好的技巧

    原文地址:How JavaScript works: Event loop and the rise of Async programming + 5 ways to better coding wi ...

  8. 如何用sublime 编写sass

    使用了Sublime Text也有一段时日了,然后在现在而言,小觉的coding工具已经非其莫属了,接着小觉因为近期忙着项目的原因,同时还要抽空编辑博客的原因,就暂时把它放在一旁了,现在偶然想起也就说 ...

  9. 编写javascript的基本技巧

    第一.编写可维护的代码 什么叫着编写可维护的代码呢?就是当我的做出来的项目,拿给其它编码团队能很快的看懂 你编写的代码,你的整个项目的逻辑等等.一个项目的修改维护是要比开发一个项目的成本 是要高的.例 ...

随机推荐

  1. java 字符串String操作工具类

    /** * StrKit. */ public class StrKit { /** * 首字母变小写 */ public static String firstCharToLowerCase(Str ...

  2. 《数据通信与网络》笔记--SCTP

    SCTP(stream control transmission protocol)是一种新的可靠的,面向报文的传输层控制协议.它兼有UDP和TCP的特性,它是可靠的面向报文的协议,它保存报文的边界, ...

  3. hdu 4578 Transformation(线段树)

    线段树上的多操作... 题目大意: 树上 的初始值为0,然后有下列三种操作和求和. 1  x y c  在X-Y的之间全部加上C. 2  x y c  在X-Y的之间全部乘上C. 3  x y c   ...

  4. ASP.NET forms凭据设置和跳转的几种方法

    string user = "userName"; //默认的第1种,超时时间是在web.cofig中forms设置的timeout,单位是分钟,生成的cookie和凭证超时时间一 ...

  5. 基于linux 的2048

    在 debian 下写了一个 2048, 效果如下: 感兴趣的朋友可以在这里(http://download.csdn.net/download/kamsau/7330933)下载. 版权声明:本文为 ...

  6. 深入浅出之Smarty模板引擎工作机制(二)

    源代码下载地址:深入浅出之Smarty模板引擎工作机制 接下来根据以下的Smarty模板引擎原理流程图开发一个自己的模板引擎用于学习,以便加深理解. Smarty模板引擎的原理,其实是这么一个过程: ...

  7. OAuth 2.0

    国外 OAuth2.0 大全:http://oauth.net/2/ 国内经典:http://www.fising.cn/2011/03/%E4%B8%80%E6%AD%A5%E4%B8%80%E6% ...

  8. maven for eclipse在线安装

    在线安装 地址变了下面的: http://download.eclipse.org/technology/m2e/releases      Eclipse Indigo安装Maven插件Maven ...

  9. Html+jquery mobile

    打开VS 2013,选择[文件]-[新建]-[项目] 选择框架为.NET Framework4-[ASP.NET MVC4 Web应用程序],点击[确定] 选择[基本],点击[确定] 创建的MVC的项 ...

  10. 如何给你的VS2010添加创建文件后的头注释

    修改VS自带的模板 1) 类文件 D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplatesCache\ ...