์ด์ ์ ์ด์ด์ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ, ํจ์์ ๋ํด ์ง๋๋ฅผ ๋๊ฐ๋ค.
#19์ 2-8 ๋ถํฐ ์ด์ด์ ์ ๋ฆฌํ๋ค.
+) ์์ ์ด ๋๋๊ณ #15, #16, #16.5 ์์ ์งํํ๋ Vending Machine ์ CSS๋ฅผ ์ง์ SASS๋ก ๋ฐ๊พธ์ด๋ ๋ณด์๋ค. ์์ค์ฝ๋.scss
์์ง์ ๊ฐ์ ํ ๋ถ๋ถ์ด ์์ ๊ฒ ๊ฐ์์ ํ์ผ ๋ถ๋ฆฌ๊น์ง๋ ํ์ง ์์๋ค.
poistion ์ ์ฃผ๋ฉด inline-block ์ฒ๋ผ ๋์ด ์ ์ฒด๋ฅผ ๋ค ์ฐจ์งํ๋ ์์ฑ์ด ์์ด์ง๊ฒ ๋๋ค.
- border๋ฅผ ์ด์ฉํ ํ์ดํ ๋ง๋ค๊ธฐ!
div { border-top: 10px solid black; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 10px solid transparent; }
์ญ์ width๋ ๊ฐ์ฅ ํฐ ๋จ์์ ์ฃผ๊ณ ๋ถ๋ชจ์ padding์ ์ด์ฉํด์ ์์ ์์์ width ์กฐ์ , height๋ ๊ฐ์ฅ ์์ ๋จ์์ ์ฃผ๊ณ padding, margin์ ์ด์ฉํด์ ๋ถ๋ชจ๊ฐ ์ข ์๋๋๋ก ์ค์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค. ์๋๋ฐ๋ ์๊พธ ์์ด๋ฒ๋ฆฌ๋ ๊ฒ ์ค ํ๋..ใ ใ
background๋ position ์์ฑ์ ์ด์ฉํด์ ์ด๋ํ ์ ์๋ค.
background: url("Polygon\ 1.png") center right 10px no-repeat;
- img
width: 100%; max-width: 100%; /* ์๋ณธ ํฌ๊ธฐ ์ด์์ผ๋ก ์ปค์ง์ง ์์ */
jpg๋ ์ฉ๋์ด ์์ง๋ง ํฌ๋ช ์ฒ๋ฆฌ๋ ๋ถ๊ฐ๋ฅ. gif ํฌ๋ช ํํ ๊ฐ๋ฅ but ์กฐ์ ๋ถ๊ฐ๋ฅ.
- background image
// background-size ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฏธ์ง์ ํฌ๊ธฐ์. background-size: contain; // ์์์ ๋ค์ด๊ฐ ์ ์๋ ํ๋์์ ์ด๋ฏธ์ง๋ฅผ ์๋ฅด์ง ์์ผ๋ฉด์ ๊ฝ ์ฑ์. background-size: cover; // ์์์ ์์ ํ ๊ฝ ์ฐจ๊ฒ ์ด๋ฏธ์ง๋ฅผ ์๋ฅด๋ฉด์ ๊ฝ ์ฑ์ background-position: 0; ์ธ๋ก ์ค์ ์ ๋ ฌ background: color image repeat position / size
- video
Poster : ๋น๋์ค๋ฅผ ๋ด๋ ค๋ฐ์ ๋์ ํน์ ์์์ ์ฌ์ํ ๋๊น์ง ํ์ํ ์ด๋ฏธ์ง๋ฅผ ์ง์ . Controls : ์ปจํธ๋กค๋ฌ ์ ๊ณต Autoplay: ๋ค์ด๋ก๋ ์๋ฃ ํ ์๋์ฌ์ Muted: ์๋ฆฌ๋ฅผ ๋๋๋ค. Loop : ๋ฐ๋ณต ์ฌ์. ํฌ๋กฌ์ ๊ฒฝ์ฐ muted๊ฐ ์์ผ๋ฉด autoplay๊ฐ ์๋จ. -> ์ ๊ทผ์ฑ!
// iframe์ ๊ฐ๋ก๋ ๊ฝ ์ฐจ๊ณ height๋ ๊ณ ์ ๋์ด์ ์์์ด ์กฐ๊ทธ๋งฃ๊ฒ ์ค์ด๋ค๋ฉด์ ๊น๋ง ์์ญ์ด ์๊น. // ๊ฐ๋ก๊ฐ ๋์ด๋ ๋ ์ธ๋ก๋ ๋์ด๋๋ ค๋ฉด ๋์์์ ๋ด๋ ค์ค์ผํจ. -> padding-top์ผ๋ก ํด๊ฒฐ. // ๊ทธ๋ฆฌ๊ณ ๋ฐ ๋ผ์ธ์ด ๋ด๋ ค๊ฐ๋, ์๋ ๋ถ์ด์๊ฒ ๋ง๋ค์. .cont-video { position: relative; padding-top: 56.25%; // padding ์ % ๋ฅผ ์ฃผ๋ฉด ๋ถ๋ชจ width๊ฐ ๊ธฐ์ค์ผ๋ก ๋์ด๊ฐ ๊ณ์ฐ๋๋ค. } .video-next-level { position: absolute; top: 0; left: 0; /* width, height ์์ฃผ๊ณ right bottom๊น์ง ๋ถ์ฌ๋ฒ๋ ค๋ ๋์ง ์๋? */ /* -> iframe์ replaced element ๋ผ์ ์ธ๋ถ ์์์ด๊ธฐ ๋๋ฌธ์ left right๋ฅผ ์ด์ฉํด์ ๋์ด๋ฅผ ์ ์ดํ ์ ์๋ค. */ width: 100%; height: 100%; }
<article class="cont-video"> <!-- iframe ๋งํฌ์ autoplay, controls ๊ฐ์ ์์ฑ ๋ฃ์ผ๋ฉด ๋๋ค. --> <iframe class="video-next-level" src="https://www.youtube.com/embed/4TWR90KJl84?autoplay=1&mute=1&loop=1&playlist=4TWR90KJl84&controls=1" title="YouTube video player" frameborder="0" allowfullscreen></iframe> </article>
๋ฐฑ๊ทธ๋ผ์ด๋ ์์์ ๋น๋์ค ํ๊ทธ๋ฅผ ์ฌ์ฉํ์. ์ ํฌ๋ธ์์ ๊ฐ์ ธ์ค๋ฉด ๊ณ์ํด์ ๋ถํ๊ฐ ๊ฑธ๋ฆผ.
Math
Math.random(); //๋๋ค // ๋ฐ์ฌ๋ฆผ, ๋ด๋ฆผ, ์ฌ๋ฆผ Math.round(); Math.floor(); Math.ceil();
js๋ก element ์์ฑ
// HTML ๊ฐ์ฒด๋ฅผ JS๋ก ์์ฑ. const bgImage = document.createElement("img"); bgImage.src = `img/${chosenImage}`; // body์ ๋ฃ์ด์ค. document.body.appendChild(bgImage); // body๋งจ ๋ค์ ์ถ๊ฐ document.body.prependChild(bgImage);
js๋ก CSS ์์ฑ์ ์ฃผ๋ ๋ฐฉ๋ฒ
body.style.background = `linear-gradient(${selectedColor1}, ${selectedColor2})`;
์ค๋ ๊ณผ์ ๋ ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์๋ค! ์น์ฌ์ดํธ ๋ฏ์ด๋ณผ ๋ ์ด์ํ ์ด๋ฆ์ผ๋ก ๋์ด์๋ ๊ฒ๋ค ๋์ ์์ฑ์ด๋ผ๊ณ ํ์ จ์ ๋ ์ด๋ป๊ฒ ํ๊ฑฐ์ง ํ๋๋ฐ.. ์ด๋ ๊ฒ ํ๊ฑฐ๊ตฌ๋!!! ํ๊ณ ์๊ฐํ๊ฒ ๋์๋ค.
feeling / finding: ์ฒ์์๋ ๋ง๋ฅ ์ด๋ ต๊ธฐ๋ง ํ๋๋ฐ, ๊ณตํต๋๋ ์์ฑ์ ๋ฌถ์ด์ ํ์ค๋ก ์ฒ๋ฆฌํ ๋๊ฐ ์ง๋ฆฟํ๋ค. ๊ทธ๋ฆฌ๊ณ .. ์ ๋ถ ์ค์ฒฉํด์ ๋๊ฐ ์์์๋ง @at-root ๋ฅผ ์คฌ๋๋ฐ, ์ด๋ ๊ฒ ์จ๋ ๋๋์ง ๊ถ๊ธํ๋ค. ์ ๋, ์ฌ์ค ์ง๊ธ ๋จ๊ณ์์๋... function์ด๋ ๋ค๋ฅธ ๋ด์ฅ ํจ์๋ฅผ... ์ ์ฉํ๊ธฐ์ ๊ท๋ชจ๊ฐ ๋๋ฌด ๋ง์์ mixin๋ง ๋งค์ฐ ๋ง์ด ์จ์ ์งํํ๋๋ฐ ๋ฐ๊ฟ ์ ์๋๊ฒ ์์์ง๋ ๊ถ๊ธํ๋ค.
action plan: ์์ ์์ Vending Machine์ ๋ณธ ๋ค์์, SASS ํ์ผ ์์๋ฅผ ์ ๊ณตํด์ฃผ์ ๋ฉํ ๋์ ์ฝ๋๋ฅผ ํ์ด๋ณด๊ณ ์ฝ๋ ๋ฆฌ๋ทฐ๋ ๋ถํ๋๋ ค์ผ๊ฒ ๋ค.
์ฌ์ค... ์ฌ์ดํธ์ ๋น๋์ค๋ฅผ ๋ฃ์ ์ผ์ด ์์๊น? ์ถ๊ธฐ๋ ํ์ง๋ง, padding: n%; ์ ๊ธฐ์ค์ด ๋ถ๋ชจ width๋ผ์ ํธ๋ฆญ์ฒ๋ผ ์์ง์ผ ์ ์๋๊ฒ ์ ๊ธฐํ๋ค.
๋์ ์์ฑ์ด ์ด์ ์ดํด๊ฐ ๊ฐ๋ค. ๊ทผ๋ฐ ๋์ ์์ฑ์ ํ๋ ์ด์ ๋ ๋ญ๊น? ํธ์ํฐ์ฒ๋ผ ์ค์๊ฐ์ผ๋ก ๊ณ์ ๊ฐ์ ธ์์ผํด์ ๊ทธ๋ฐ ๋๋์ผ ๊ฒ ๊ฐ์ง๋ง...