๊ฐœ๋ฐœ ๐Ÿพ/HTML,CSS

CSS์—์„œ ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

JOTOKKI 2021. 6. 30. 11:16
728x90

์ฐธ์กฐ : https://developer.mozilla.org/ko/docs/Web/CSS/Using_CSS_custom_properties

IE์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

Can I use ๊ฒ€์ƒ‰๊ฒฐ๊ณผ

์ง€์›์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋„์™€์ฃผ๋Š”css-var-ponyfill์ด๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๊ธดํ•œ๋ฐ,

์•„๋ฌด๋ฆฌ ์„ค์ •ํ•ด๋„ ํ•ด๊ฒฐ์ฑ…์„ ๋ชป ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. 

์ข€ ๋” ํŒŒ๋ณด๊ณ  ํ•ด๊ฒฐ์ฑ…์ด ๋‚˜์˜ค๋ฉด ์ถ”ํ›„ ํฌ์ŠคํŒ…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

element์™€ root์—์„œ ์„ ์–ธํ•จ์œผ๋กœ์จ ์Šค์ฝ”ํ”„(scope)๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

element์—์„œ ์ง€์ •๋œ ๋ณ€์ˆ˜๋Š” ํ•ด๋‹น element๊ฐ€ ๋ถ€๋ชจ๊ฐ€ ์•„๋‹ˆ๋ฉด ์ ์šฉ์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

:root {
    --box-size: 50px;
}

.box1 {
    --main-color: orange;
}

:root๋Š” ์ „์—ญ์„ ๋œปํ•˜๊ณ . box1 ์€. box1์„ ํฌํ•จํ•œ ํ•˜์œ„ element ์—๊ฒŒ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ๋งˆํฌ์—…์ด  ์žˆ์Šต๋‹ˆ๋‹ค. 

<div class="wrap">
    <div class="box box1"><div class="inner">box1</div></div>
    <div class="box"><div class="inner">box2</div></div>
    <div class="box"><div class="inner">box3</div></div>
</div> 

wrap์•ˆ์— box๋“ค์„ float ํ•˜๊ณ  wrap์˜ width๊ฐ’์„ box ์‚ฌ์ด์ฆˆ * 3 ๋งŒํผ ์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” CSS๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์คฌ์„ ๊ฒ๋‹ˆ๋‹ค. 

.wrap {
    overflow :hidden;
    width: calc(50px * 3);
    background: red;
}

.box {
    float: left;
    background: green;
    width: 50px;
    height: 50px; 
    color: yellow; 
}

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” ๊ฐ™์•„์„œ ๋ฌธ์ œ๊ฐ€ ์—†์–ด ๋ณด์ด์ง€๋งŒ, 

๋งŒ์•ฝ box์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 45px๋กœ ์ค„์–ด๋“ค๊ธฐ๋ผ๋„ ํ•œ๋‹ค๋ฉด 50px์ด๋ผ๊ณ  ์„ ์–ธ๋œ ๋ถ€๋ถ„์„ ๋ชจ๋‘ ์ฐพ์•„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

ํ•˜์ง€๋งŒ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ€์ˆ˜๋ฅผ ์ค€ ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๊ฒ ์ฃ ?

 

๋‹ค์Œ์€ ๋ณ€์ˆ˜๊ฐ€ ์ ์šฉ๋œ ์†Œ์Šค์ž…๋‹ˆ๋‹ค. 

์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด var(๋ณ€์ˆ˜๋ช…) ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

:root {
    --box-size: 50px;
}

.wrap {
    overflow :hidden;
    width: calc(var(--box-size) * 3);
    background: red;
}

.box {
    float: left;
    background: green;
    width: var(--box-size);
    height: var(--box-size); 
    color: yellow; 
}

 

์š”์ฆ˜์€ Sass์™€ ๊ฐ™์€ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ฑฐ๋‚˜, SPA๊ฐœ๋ฐœ๋กœ๋Š” css๋„ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑํ•˜๋‹ˆ ๊ทธ๋‹ค์ง€ ํ•„์š”์„ฑ์€ ์—†์–ด ๋ณด์ด์ง€๋งŒ,

css์—์„œ๋„ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์› ์Šต๋‹ˆ๋‹ค. 

์˜›๋‚ ์— ํ•˜๋˜ ํ”„๋กœ์ ํŠธ ์ค‘  slider๋ฅผ css๋งŒ์œผ๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ์—ˆ๋˜ ๊ธฐ์–ต์ด ๋‚˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. 

 

 

๋ฐ˜์‘ํ˜•