-
scsshtml.css.js/html css 2023. 11. 9. 09:27
๐ฅ SCSS ๋? ( Syntactically Awesome StyleSheet์ ์ฝ์ด )
Sass์ 3๋ฒ์ ์์ ์๋กญ๊ฒ ๋ฑ์ฅํ SCSS๋ CSS ๊ตฌ๋ฌธ๊ณผ ์์ ํ ํธํ๋๋๋ก ์๋ก์ด ๊ตฌ๋ฌธ์ ๋์ ํด ๋ง๋ Sass์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ง์ํ๋ CSS์ ์์์งํฉ(Superset)
=> ์น์์๋ ์ง์ ๋์ํ์ง ์๊ธฐ ๋๋ฌธ์ CSS๋ก ์ปดํ์ผ(Compile)ํจ๐ฅ SCSS ์ ์ธ๊น?
๊ฐ๋ฐ์ ํจ์จ์ ์ฌ๋ฆฌ๊ธฐ ์ํด ๋ฑ์ฅํ CSS ์ ์ฒ๋ฆฌ๊ธฐ ์ธ์ด
1. ์ฝ๋์ ์ฌํ์ฉ์ฑ
2. ๊ฐ๋ ์ฑ
=> CSS์์ ๋ณด์ด๋ ๋จ์ ์ ๋ณด์ํจ
๐ฅ ์ค์ฒฉ(Nesting)
์์ ์ ํ์์ ๋ฐ๋ณต์ ํผํ๊ณ ๊ฐ๋ ์ฑ์ด ์ข๊ฒ ์์ฑ ๊ฐ๋ฅ
.box { margin: { top: 10vh; left: 20vw; }; padding: { bottom: 40vh; right: 30vw; }; .list { padding: 20px; li { text-decoration: none; } } }
๐ฅ ์ฐธ์กฐ
์ค์ฒฉ ์์์ &ํค์๋๋ ์์(๋ถ๋ชจ)์ ํ์๋ฅผ ์ฐธ์กฐํจ
.btn { position: absolute; &.active { color: red; } }
.btn { color: blue; &:hover { color: red; } }
๐ฅ ์ฌํ์ฉ
SCSS๋ @mixin๊ณผ @include๋ก ๊ธฐ๋ฅ์ ์ฌ์ฉ
@Mixins
์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ๋ง๋๋ ๋ฐฉ์
@mixin ๋ฏน์ค์ธ์ด๋ฆ { ์คํ์ผ; } @mixin largeBtn { border-radius: 50%; border: none; background-color: white; width: 2vw; height: 5vh; }
@include
@include ๋ฏน์ค์ธ์ด๋ฆ;
๐ฅ ํ์ฅ (extend)
ํน์ ์ ํ์๊ฐ ๋ค๋ฅธ ์ ํ์์ ๋ชจ๋ ์คํ์ผ์ ๊ฐ์ ธ์ผํ๋ ๊ฒฝ์ฐ
@extend ์ ํ์;
.btn { padding: 20px; margin: 20px; background: skyblue; } .btn-agree { @extend .btn; background: green; }
๐ฅif (ํจ์)
// @if if(์กฐ๊ฑด, ํํ์1, ํํ์2) /* ์กฐ๊ฑด์ด ์ฐธ์ผ ๋ ํํ์1, ๊ฑฐ์ง์ผ ๋ ํํ์2 */ // @if @else @if (์กฐ๊ฑด) { /* ์กฐ๊ฑด์ด ์ฐธ์ผ ๋ ๊ตฌ๋ฌธ */ } @else { /* ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋ ๊ตฌ๋ฌธ */ } // @if @else if @if (์กฐ๊ฑด1) { /* ์กฐ๊ฑด1์ด ์ฐธ์ผ ๋ ๊ตฌ๋ฌธ */ } @else if (์กฐ๊ฑด2) { /* ์กฐ๊ฑด2๊ฐ ์ฐธ์ผ ๋ ๊ตฌ๋ฌธ */ } @else { /* ๋ชจ๋ ๊ฑฐ์ง์ผ ๋ ๊ตฌ๋ฌธ */ }
=> ์กฐ๊ฑด์ ( )๋ ์๋ต์ด ๊ฐ๋ฅ
'html.css.js > html css' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ทธ๋ฆฌ๋ [grid] (0) 2023.12.15 web๋์์๋ฆฌ (2) 2023.11.15 [CSS] Flex์์ฑ (0) 2023.08.07