Sass学习

Nov 23, 2016 pm 03:19 PM
sass

一、什么是SASS

SASS是一中CSS的开发工具,提供了许多便利的写法,大大节约了设计者们的时间,使得CSS的开发,变得简单和可维护。本文总结了SASS的主要方法。我们的目标是,有了这篇文章,日常的一般使用就不需要看官方文档了。

二、安装和使用

2.1  安装

SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用,只需先安装Ruby,在安装SASS,假设你已经安装RUby,接着命令行输入下面的命令:

   gem  insrall  sass  

然后就可以使用了。

2.2使用

SASS文件就是普通的文本文件,里面可以直接使用CSS语法。后缀名是.Scss,意思是Sassy CSS。下面的命令,可以在屏幕上显示.scss文件转化为css的代码。(假设文件名为test)

   sass  test.scss

如果要将显示结果保存文件,后面再跟一个.css文件名。

   sass  test.scss test.css

SASS提供四个编程风格的选项

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

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

*compact:简洁格式的css代码。

*compressed:压缩后的css代码

生产环境当中,一般使用最后一个选项

sass  ---style commpressed test.sass test.css

他也可以让SASS监听某个文件或目录,一旦文件有变动,就自动生成编译后的版本。

//watch a file

sass  --watch input.scss

//watch a directory

sass --watch app/sass:public/stylesheets

SASS的官方网站,提供了一个在线转换器,你可以在那里运行下面的各种例子

三、基本用法

3.1变量

SASS允许使用变量,所以变量用$开头。

$blue : #1875e7;

div{

color :$blue

}

如果变量需要镶嵌在字符串中,就必须写在#{}之中。

$side : left;

.rounded{

border-#{side}-radius:5px;

}

3.2 计算功能

SASS允许在代码中使用算式

Body{

margin : (14px/2);

top : 50px + 100px;

right : $var * 10%;

}

3.3嵌套

SASS允许选择器嵌套。比如下面的CSS代码

div h1{

color : red;

}

可以写成

div{

Hi{

color : red;

}

}

属性也可以嵌套,比如border-color属性,可以写成

p{

border:{

color:red;

}

     }

注意border后面必须加上冒号。

在嵌套代码内,可以使用&引用父元素。比如border-color属性,可以写成:

a{

&:hover{ color :#ffb3ff; }

}

3.4注释

SASS共有两种注释风格。

标准的CSS注释/* comment */,会保留编译后的文件。

单行注释//comment,只保留在SASS源文件中,编译后被省略。

在/*后面加一个感叹号,”表示这种是重要注释”,即使是压缩模式编译,也会保留这行注释 ,通常可以用于声明版权信息。

/*!

重要注释

*/

四、代码的重用

4.1 继承

SASS允许一个选择器,比如另有一个选择器,比如现有class1:

.class1{

border:1px solid #ddd;

}

class2要继承class1,就要使用@extend命令:

.class{

 

@extend.class1;

font-size:120%;

}

4.2 Mixin

Mixin有点像C语言的宏(macro),是可以重用的代码块。

使用@mixin命令,定义一个代码块。

@mixin left{

float:left;

margin-left:10px

}

使用@include命令,调用这个mixin

div{

@include left;

}

mixin的强大之处,在于可以指定参数和缺省值。

@mimin left($value:10px){

float:left;

Margin-right:$value

}

使用的时候,根据需要加入参数

div{

@include left(20px);

}

下面是一个mixin的实例,用来生成浏览器前缀。

@mixin rounded($vert,$horz,$radius:10px){

border-#{$vert}-#{$horz}-radius:$radius;

-moz-border-radius-#{$vert}#{$horz}:$radius;

-webkit-border-#{$vert}-#{$horz}-radius:$radius;

}

使用的时候,可以像下面这样调用

#navbar li{ @include rounded(top,left);}

#footer{ @include rounded(top,left,5px);}

4.3颜色函数

SASS提供了一些内置函数,以便生成系列颜色。

lighten(#cc3,10%)//#d6d65c

darken(#cc3,10%)//#a3a329

grayscale(#cc3)//#808080

complement(#cc3)//#33c

4.4插入文件

@import 命令,用来插入外部文件。

@import “path/filename.scss”;

如果插入的是.css文件,则等同于css的import命令。

@import “foo.css”;

五、高级用法

5.1 条件语句

@if可以用来判断;

p{

@if 1+1 ==2{border:1px solid ;}

@if 5< 3{border:2px dotted;}

}

配套的还有@else命令:

@if lightness($color)>30%{

 

}@else{

 

}

5.2循环语句

SASS支持for循环:

@for $i from 1 to 10 {

.border-#{$i}{

Border:#{$i}px solid blue;

}

}

也支持while循环:

$i:6;

@while $i >0{

.item-#{$i}{width:2em *$i}

$i:$i-2

}

each命令,作用与for类似:

@each $member in a,b,c,d{

.#{$member}{

Background-image:url(“image/#{$member}.jpg”);

}

}

5.3自定义函数

SASS允许用户编写自己的函数。

@function double($n){

@return $n*2;

}

#sidebar{

Width:double(5px);

}

 


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menjadikan Peralihan Svelte Khas pertama anda Menjadikan Peralihan Svelte Khas pertama anda Mar 15, 2025 am 11:08 AM

API Peralihan Svelte menyediakan cara untuk menghidupkan komponen apabila mereka memasuki atau meninggalkan dokumen, termasuk peralihan svelte adat.

Bekerja dengan Caching Graphql Bekerja dengan Caching Graphql Mar 19, 2025 am 09:36 AM

Sekiranya anda baru -baru ini mula bekerja dengan GraphQL, atau mengkaji semula kebaikan dan keburukannya, anda tidak akan ragu -ragu mendengar perkara seperti "Graphql tidak menyokong caching" atau

Tunjukkan, jangan beritahu Tunjukkan, jangan beritahu Mar 16, 2025 am 11:49 AM

Berapa banyak masa yang anda habiskan untuk merancang persembahan kandungan untuk laman web anda? Semasa anda menulis catatan blog baru atau membuat halaman baru, adakah anda memikirkan

Membina aplikasi Ethereum menggunakan redwood.js dan fauna Membina aplikasi Ethereum menggunakan redwood.js dan fauna Mar 28, 2025 am 09:18 AM

Dengan pendakian harga bitcoin baru -baru ini lebih dari 20k $ USD, dan baru -baru ini melanggar 30k, saya fikir ia patut mengambil menyelam yang mendalam kembali ke dalam mewujudkan Ethereum

Membuat Bragdoc anda sendiri dengan sebelas Membuat Bragdoc anda sendiri dengan sebelas Mar 18, 2025 am 11:23 AM

Tidak kira tahap tahap anda sebagai pemaju, tugas yang kami selesaikan -sama ada besar atau kecil -membuat kesan besar dalam pertumbuhan peribadi dan profesional kami.

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Ia &#039; s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Sedikit di CI/CD Sedikit di CI/CD Apr 02, 2025 pm 06:21 PM

Saya &#039;

Mari kita gunakan (x, x, x, x) untuk bercakap mengenai kekhususan Mari kita gunakan (x, x, x, x) untuk bercakap mengenai kekhususan Mar 24, 2025 am 10:37 AM

Saya hanya berbual dengan Eric Meyer pada hari yang lain dan saya teringat cerita Eric Meyer dari tahun -tahun pembentukan saya. Saya menulis catatan blog mengenai kekhususan CSS, dan

See all articles