TIL - SASS - CSS 전처리기
14346 단어 todayilearnedcssbeginnerssass
접두사
전처리기를 사용하면 변수, 함수, 다른 파일에 파일을 포함하는 기능과 같은 고급 기능을 제공하는 대체 언어로 CSS를 작성할 수 있습니다. 최대한 반복을 피하면서. 일반적으로 빌드 시 브라우저 호환성을 추가하기 위해 기본 제공 접두어가 있습니다. 그리고 CSS 개발을 좀 더 쉽게 해주는 플러그인이 있습니다. 웹 브라우저만 이해할 수 있는 기본 CSS로 다시 변환되도록 컴파일됩니다. 따라서 전처리기는 CSS에 새로운 기능을 제공하지 않고 작성을 용이하게 합니다.
SASS 은 오늘날 가장 널리 퍼져 있고(부트스트랩 4에서 사용됨) 자세히 설명하겠습니다. Sass/SCSS가 있습니다. 첫 번째는 CSS에서 더 멀리 떨어져 있고 두 번째는 CSS와 더 유사하므로 지금은 SCSS에 대해 알아보겠습니다.
SCSS 파일을 브라우저가 해석할 수 있는 CSS로 변환하려면 작은 컴파일러를 설치해야 합니다.
SASSMeister SCSS를 온라인에서 CSS로 직접 컴파일합니다.
중첩
basic nesting examples
.maListe {
background-color:red;
&:hover {
background-color:blue;
> li {
color:purple;
}
}
> li {
color:green;
&:hover {
color:yellow;
}
}
}
미디어 쿼리를 중첩할 수도 있습니다.
.sidebar{
width: 300px:
@media screen and (orientation: landscpae) {
width: 500px;
}
}
변수
$couleur-first: #fffff;
$couleur-second: #00000;
.page {
color: $couleur-first;
background-color : $couleur-second;
}
변수는 CSS3 이후 CSS에도 기본적으로 존재합니다.
SCSS 특정 기능
일부는 색상에 전념합니다. 다른 색상에서 파생된 색상을 계산할 수 있습니다.
basic nesting examples
.maListe {
background-color:red;
&:hover {
background-color:blue;
> li {
color:purple;
}
}
> li {
color:green;
&:hover {
color:yellow;
}
}
}
미디어 쿼리를 중첩할 수도 있습니다.
.sidebar{
width: 300px:
@media screen and (orientation: landscpae) {
width: 500px;
}
}
변수
$couleur-first: #fffff;
$couleur-second: #00000;
.page {
color: $couleur-first;
background-color : $couleur-second;
}
변수는 CSS3 이후 CSS에도 기본적으로 존재합니다.
SCSS 특정 기능
일부는 색상에 전념합니다. 다른 색상에서 파생된 색상을 계산할 수 있습니다.
$couleur-first: #fffff;
$couleur-second: #00000;
.page {
color: $couleur-first;
background-color : $couleur-second;
}
일부는 색상에 전념합니다. 다른 색상에서 파생된 색상을 계산할 수 있습니다.
controlling color with functions
other functions
SCSS를 사용하면 CSS 코드를 반환하는 믹스인과 혼동하지 않고 결과를 반환하는 함수를 정의할 수 있습니다.
grid-width: 40px;
$gutter-width: 10px;
@function grid-width($n) {
@return $n * $grid-width + ($n - 1) * $gutter-width;
}
#sidebar { width: grid-width(5); } //240px
믹신
mixin을 사용하면 사이트 전체에서 재사용하려는 CSS 선언 그룹을 만들 수 있습니다. 믹스인을 보다 유연하게 만들기 위해 매개변수를 전달할 수도 있습니다.
예를 들어 상자의 그림자 + 텍스트의 절반 크기와 더 밝은 색상
@mixin myShadows ($x, $y, $blur, $color) {
text-shadow : $x $y $blur $color;
box-shadow : $x/2 $y/2 $blur/2 lighten($color, 50);
}
.myText {
@include myShadows(6px 6x 4px #ff0000);
}
가져오기
scss 파일을 다른 파일로 가져올 수 있습니다. 이렇게 하면 이러한 파일을 더 쉽게 분할할 수 있습니다. (또한: 아래의 칭찬 덕분에 @import를 @use로 변경했습니다(고마워요!))
//base.scss
body {
...
}
index.scss
@use 'base';
nav{
...
}
연장하다
확장을 사용하면 다른 블록의 CSS 코드를 반복하고 속성을 추가하여 재작성을 방지할 수 있습니다.
.myButton{
padding: 5px;
color: white;
}
.myButton-sucess{
@extend .myButton;
background-color: green;
}
.myButton-error{
@extend .myButton;
background-color: red;
}
정황
@if <condition> {
property to be applied if condition returns true
} @else if <condition> {
property to be applied if condition returns true
} @else {
property to be applied if previous conditions returns false
}
예를 들어
$myMainColor : blue;
p{
@if $myMainColor == blue {
color: orange,
} @else if $myMainColor == green {
color: red;
} @else $myMainColor == yellow {
color: purple
}
}
다음과 같이 루프를 사용하여 변수를 반복할 수도 있습니다.
@을 위한
@각
@동안
@for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
@each $color in blue, white, red
.flag {
.div-#{$color} {
display: inline-block;
width: 10px;
height: 50px;
background-color: $color;
}
}
$i: 3;
@while $i > 0 {
.item-#{$i} { width: 2em * $i; }
$i: $i - 1;
}
Workshop
Reference
이 문제에 관하여(TIL - SASS - CSS 전처리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/annequinkenstein/sass-2dph
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@mixin myShadows ($x, $y, $blur, $color) {
text-shadow : $x $y $blur $color;
box-shadow : $x/2 $y/2 $blur/2 lighten($color, 50);
}
.myText {
@include myShadows(6px 6x 4px #ff0000);
}
scss 파일을 다른 파일로 가져올 수 있습니다. 이렇게 하면 이러한 파일을 더 쉽게 분할할 수 있습니다. (또한: 아래의 칭찬 덕분에 @import를 @use로 변경했습니다(고마워요!))
//base.scss
body {
...
}
index.scss
@use 'base';
nav{
...
}
연장하다
확장을 사용하면 다른 블록의 CSS 코드를 반복하고 속성을 추가하여 재작성을 방지할 수 있습니다.
.myButton{
padding: 5px;
color: white;
}
.myButton-sucess{
@extend .myButton;
background-color: green;
}
.myButton-error{
@extend .myButton;
background-color: red;
}
정황
@if <condition> {
property to be applied if condition returns true
} @else if <condition> {
property to be applied if condition returns true
} @else {
property to be applied if previous conditions returns false
}
예를 들어
$myMainColor : blue;
p{
@if $myMainColor == blue {
color: orange,
} @else if $myMainColor == green {
color: red;
} @else $myMainColor == yellow {
color: purple
}
}
다음과 같이 루프를 사용하여 변수를 반복할 수도 있습니다.
@을 위한
@각
@동안
@for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
@each $color in blue, white, red
.flag {
.div-#{$color} {
display: inline-block;
width: 10px;
height: 50px;
background-color: $color;
}
}
$i: 3;
@while $i > 0 {
.item-#{$i} { width: 2em * $i; }
$i: $i - 1;
}
Workshop
Reference
이 문제에 관하여(TIL - SASS - CSS 전처리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/annequinkenstein/sass-2dph
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
.myButton{
padding: 5px;
color: white;
}
.myButton-sucess{
@extend .myButton;
background-color: green;
}
.myButton-error{
@extend .myButton;
background-color: red;
}
@if <condition> {
property to be applied if condition returns true
} @else if <condition> {
property to be applied if condition returns true
} @else {
property to be applied if previous conditions returns false
}
예를 들어
$myMainColor : blue;
p{
@if $myMainColor == blue {
color: orange,
} @else if $myMainColor == green {
color: red;
} @else $myMainColor == yellow {
color: purple
}
}
다음과 같이 루프를 사용하여 변수를 반복할 수도 있습니다.
@을 위한
@각
@동안
@for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
@each $color in blue, white, red
.flag {
.div-#{$color} {
display: inline-block;
width: 10px;
height: 50px;
background-color: $color;
}
}
$i: 3;
@while $i > 0 {
.item-#{$i} { width: 2em * $i; }
$i: $i - 1;
}
Workshop
Reference
이 문제에 관하여(TIL - SASS - CSS 전처리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/annequinkenstein/sass-2dph텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)