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

变量

  1. $font-stack: Helvetica, sans-serif;
  2. $primary-color: #333333;
  3. body {
  4. font: 100% $font-stack;
  5. color: $primary-color;
  6. }
  7. //编译结果
  8. body {
  9. font: 100% Helvetica, sans-serif;
  10. color: #333;
  11. }

嵌套

  1. nav {
  2. ul {
  3. margin: 0;
  4. padding: 0;
  5. list-style: none;
  6. }
  7. li { display: inline-block; }
  8. a {
  9. display: block;
  10. padding: 6px 12px;
  11. text-decoration: none;
  12. }
  13. }
  14. //编译结果
  15. nav ul {
  16. margin: 0;
  17. padding: 0;
  18. list-style: none;
  19. }
  20. nav li {
  21. display: inline-block;
  22. }
  23. nav a {
  24. display: block;
  25. padding: 6px 12px;
  26. text-decoration: none;
  27. }

引用

  1. // _reset.scss
  2. html,
  3. body,
  4. ul,
  5. ol {
  6. margin: 0;
  7. padding: 0;
  8. }
  9. // base.scss
  10. @import 'reset';
  11. body {
  12. font: 100% Helvetica, sans-serif;
  13. background-color: #efefef;
  14. }
  15. //编译结果
  16. html,
  17. body,
  18. ul,
  19. ol {
  20. margin: 0;
  21. padding: 0;
  22. }
  23. body {
  24. font: 100% Helvetica, sans-serif;
  25. background-color: #efefef;
  26. }

混入

  1. @mixin transform($property) {
  2. -webkit-transform: $property;
  3. -ms-transform: $property;
  4. transform: $property;
  5. }
  6. .box { @include transform(rotate(30deg)); }
  7. //编译结果
  8. .box {
  9. -webkit-transform: rotate(30deg);
  10. -ms-transform: rotate(30deg);
  11. transform: rotate(30deg);
  12. }

继承、扩展

  1. /* This CSS will print because %message-shared is extended. */
  2. %message-shared {
  3. border: 1px solid #ccc;
  4. padding: 10px;
  5. color: #333;
  6. }
  7. // This CSS won't print because %equal-heights is never extended.
  8. %equal-heights {
  9. display: flex;
  10. flex-wrap: wrap;
  11. }
  12. .message {
  13. @extend %message-shared;
  14. }
  15. .success {
  16. @extend %message-shared;
  17. border-color: green;
  18. }
  19. .error {
  20. @extend %message-shared;
  21. border-color: red;
  22. }
  23. .warning {
  24. @extend %message-shared;
  25. border-color: yellow;
  26. }
  27. //编译结果
  28. .message, .success, .error, .warning {
  29. border: 1px solid #ccc;
  30. padding: 10px;
  31. color: #333;
  32. }
  33. .success {
  34. border-color: green;
  35. }
  36. .error {
  37. border-color: red;
  38. }
  39. .warning {
  40. border-color: yellow;
  41. }

运算符

  1. .container {
  2. width: 100%;
  3. }
  4. article[role="main"] {
  5. float: left;
  6. width: 600px / 960px * 100%;
  7. }
  8. aside[role="complementary"] {
  9. float: right;
  10. width: 300px / 960px * 100%;
  11. }
  12. //编译结果
  13. .container {
  14. width: 100%;
  15. }
  16. article[role="main"] {
  17. float: left;
  18. width: 62.5%;
  19. }
  20. aside[role="complementary"] {
  21. float: right;
  22. width: 31.25%;
  23. }