>웹 프론트엔드 >CSS 튜토리얼 >Sass의 기본 자세

Sass의 기본 자세

高洛峰
高洛峰원래의
2016-10-15 10:24:021116검색

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 코드입니다.

압축: 압축된 CSS 코드입니다.

예:

sass test.scss test.css --style compressed

--watch: 파일 변경 모니터링 Sass는 소스 파일 변경을 모니터링하고 자동으로 컴파일된 버전을 생성할 수 있습니다. 예

//监听单个文件
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으로 문의하세요.