前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scss (Sass) 语法简介

Scss (Sass) 语法简介

作者头像
beginor
发布2020-08-10 14:34:13
7460
发布2020-08-10 14:34:13
举报

Scss (Sass) 语法简介

什么是 Scss

Scss 是 CSS 的扩展, 在保证兼容性的基础上, 允许使用变量、 嵌套、 混合、 导入等特性, 在编写大量的 CSS 文件时很有帮助。

特色

  • 完全兼容 CSS3
  • 在语法上扩展了变量、 嵌套以及混合等
  • 操作颜色以及其它的有用的函数
  • 高级特性, 比如针对类库的控制声明
  • 格式良好并且可控制的输出
  • Firebug 集成

基本语法

Scss 是 CSS3 的扩展, 在 CSS3 的基础上, 添加了下面几个重要的特性:

变量

Scss 使用 $ 符号来定义变量, 支持的变量类型有 数字(可带单位)字符串颜色 以及 布尔值 等, 示例如下:

代码语言:javascript
复制
$font-stack:    Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

输出的 CSS 代码为:

代码语言:javascript
复制
body {
  font: 100% Helvetica, sans-serif;
  color: #333;
}
嵌套

CSS 本身支持嵌套, 但是并不直观, Scss 提供了更加直观的嵌套语法:

代码语言:javascript
复制
nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  li { display: inline-block; }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}

输出的 CSS 代码为:

代码语言:javascript
复制
nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

nav li {
  display: inline-block;
}

nav a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}
分部

以下划线开头的文件 (_partial.Scss) 不会被输出, 可以被导入到其它文件。

导入

比如有这样的一个部分文件 (_reset.Scss):

代码语言:javascript
复制
// _reset.Scss

html,
body,
ul,
ol {
   margin: 0;
  padding: 0;
}

base.css 文件中导入这个文件:

代码语言:javascript
复制
/* base.Scss */

@import 'reset';

body {
  font-size: 100% Helvetica, sans-serif;
  background-color: #efefef;
}

最后, 输出的 CSS 代码为:

代码语言:javascript
复制
html, body, ul, ol {
  margin: 0;
  padding: 0;
}

body {
  background-color: #efefef;
  font-size: 100% Helvetica, sans-serif;
}
混合

定义 border-radius , 并将其添加到 .box 类:

代码语言:javascript
复制
@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
     -moz-border-radius: $radius;
      -ms-border-radius: $radius;
          border-radius: $radius;
}

.box { @include border-radius(10px); }

输出的 CSS 代码为:

代码语言:javascript
复制
.box {
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  border-radius: 10px;
}
继承

Scss 扩展了 CSS 的继承, 例如:

代码语言:javascript
复制
.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 代码为:

代码语言:javascript
复制
.message, .success, .error, .warning {
  border: 1px solid #cccccc;
  padding: 10px;
  color: #333;
}

.success {
  border-color: green;
}

.error {
  border-color: red;
}

.warning {
  border-color: yellow;
}
操作符

Scss 可以支持 + - * / 等常用的运算符号:

代码语言:javascript
复制
.container { width: 100%; }

article[role="main"] {
  float: left;
  width: 600px / 960px * 100%;
}

aside[role="complimentary"] {
  float: right;
  width: 300px / 960px * 100%;
}

输出的 CSS 代码为:

代码语言:javascript
复制
.container {
  width: 100%;
}

article[role="main"] {
  float: left;
  width: 62.5%;
}

aside[role="complimentary"] {
  float: right;
  width: 31.25%;
}

以上只是基本的 Scss 语法, 想了解更多请参考 Sass 官方网站

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Scss (Sass) 语法简介
    • 什么是 Scss
      • 特色
        • 基本语法
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档