搜索
首页php教程PHP开发Sass的基础姿势

Sass的基础姿势

Nov 23, 2016 am 10:17 AM
sass

SASS是什么

传统的CSS是一种单纯的描述性样式文件,然而SASS可以对CSS进行预编译处理。 在SASS源码中可以使用变量、函数、继承等动态语言的特性,并且可以编译成CSS文件。

安装与使用

安装

由于sass是ruby写的,所以想要使用sass就需要安装ruby环境。然后再使用gem安装sass。 输入下面的命令进行安装sass:

gem install sass

可以使用sass -v命令查看sass的版本。

使用

新建一个后缀名为.scss源码文件,就可以编辑sass源码了。 然后使用下面的命令可以将源码文件编译转换为css并显示在屏幕上。

sass test.scss

也可以在后面加上后缀名为.css的文件名,就可以在当前目录生成css文件。如下:

sass test.scss test.css

注:.sass与.scss这两种的区别在于.sass文件对代码的排版有着非常严格的要求,而且没有大括号,没有分号。

命令参数

--style:编译风格 sass提供四种编译风格选项:

nested:嵌套缩进的css代码,它是默认值。

expanded:没有缩进的、扩展的css代码。

compact:简洁格式的css代码。

compressed:压缩后的css代码。

e.g.

sass test.scss test.css --style compressed

--watch:监听文件变动 sass可以监听源文件变动,并自动生成编译后的版本。 e.g.

//监听单个文件sass --watch test.scss:test.css
//监听目录sass --watch sassFileDirectory:cssFileDirectory

变量

SASS使用$开头定义变量

$white:#FFFFFF;body{   
 color: $white;
}

如果需要将变量插入到字符串中,需要将变量写在#{}中

$imgUrl:"../img/test.png";body{ 
   background-image: url(#{$imgUrl});
}

运算

SASS允许在代码中使用算式

$min-left:10px;body{   
 margin-left:$min-left+20px;
}

嵌套

SASS允许嵌套规则

div{
    //选择器嵌套
    p{
        color:#FFFFFF;
    }
    //属性嵌套
    margin:{
        left:10px;
    }
    //伪类嵌套
    &:hover{
        color:#F4F4F4;
    }
}

编译成CSS样式为:

div {
  margin-left: 10px;
}
div p {
  color: #FFFFFF;
}
div:hover {
    color: #F4F4F4;
}

继承

SASS可以使用@extend继承于另一个选择器。

.page{
    background-color:#F7F7F7;
}
.div1{
    @extend .page;
    color:#FFFFFF;
}

Mixin

SASS提供Mixin类似“函数”的重用代码块。 使用@mixin定义样式代码块,然后使用@include调用该样式。 不同于@extend的是Mixin定义样式不会编译输出在CSS样式中,并且可以指定参数和默认值。

//不带参数的mixin
@mixin page{
    background-color:#F7F7F7;
}
//带参数的mixin
@mixin setDefMargin($left, $right, $bottom: 10px,$top: 10px){
    margin:$top $right $bottom $left;
}
.test{
    @include page;
    @include setDefMargin(20px,30px);
    color:#FFFFFF;
}

需要注意的是,必须先定义没有默认值的参数,后指定有默认值的参数。

Import

sass可以使用@import语句,来引用指定的外部文件。

//引入scss文件
@import "variable.scss";
//引入css样式文件
@import "style.css";

条件语句

使用@if和@else语句可以用来做条件判断

$min-margin: 10px;
@mixin init-margin($left){
    //判断传入的参数是否大于最小值
    @if $left > $min-margin {
        margin-left: $left;
    } @else {
        margin-left: $min-margin;
    }
}
body {
    @include init-margin(5px);
}

循环语句

FOR循环

使用@for来定义循环体。 $i表示循环变量,from 后面跟上开始数值,to后面跟结束数值。

@for $i from 1 to 20 {
    .page-index#{$i} {
        color: #FFFFFF;
    }
}

WHILE循环

使用@while定义循环体,后面跟循环条件

//循环变量
$i: 2;
@while $i<10{
    page-index#{$i} {
        color: #F4F4F4;
    }
    $i=$i=1;
}

自定义函数

使用@function语句可以自定义函数,@return表示函数的返回值

@function calcNumber($num) {
    @return $num+10;
}body {    margin-left: calcNumber(20px);
}


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系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

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

热门文章

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器