๋ฉ์์ด ์ฌ์์ฒ๋ผ๐ฆ ํ๋ก ํธ์๋ ์ค์ฟจ 1๊ธฐ 3์ฃผ์ฐจ(์) ํ๊ณ - November 15, 2021.
์ค๋ ์์
์ค ๋จ์ฐ ๊ธฐ์ต์ ๋จ๋ ๋ง์ด ์๋ค.
"์ฌ๋ฌ๋ถ, ์ฌ๋ฌ๋ถ ์ธ์์์ ์ด๋ ๊ฒ ๋จ๊ธฐ๊ฐ์ ์ฑ์ฅํ ์ ์๋ ๊ธฐํ๊ฐ ๋ช ๋ฒ์ด๋ ์ฌ ๊ฒ ๊ฐ์ผ์ธ์?"
์ดํธ์ค ๊ฐ์ฌ๋์ด ์ค์น๋ฏ ํ์ ๋ง์ด์ง๋ง ๊ณ์ ๋จธ๋ฆฟ์์ ์ด ๋ง์ด ๋งด๋๋ค.
์ด๋ ต๊ฒ ์ก์ ์์คํ ๊ธฐํ๋ฅผ ํํฌ๋ฃจ ๋ณด๋ด๋ฉด ์๋ ์ผ์ด๋ค.
์ด์ 11์์ ๋ฐ์ด ๋จ์์ผ๋ ์ฒ์ ๊ณํํ๋๋๋ก ์ฝํ ๋จ๊ณ๋ณ ๋ฌธ์ ํ์ด๋ฅผ ์์ํ ๋๊ฐ ์จ ๊ฒ ๊ฐ๋ค. ์์ง ์คํฐ๋๋ฅผ ํ ๋ ๋ฒจ์ ์๋๋ผ๊ณ ์๊ฐ๋๊ณ , ๊ธฐ์ด ์ญ๋์ ๋ด ๋ณดํญ์ ๋ง๊ฒ ์ฐจ๊ทผ์ฐจ๊ทผ ํค์๋๊ฐ ๊ฒ์ด๋ค.
์ง๊ธ๋ ๋ช ๋ฌธ์ ํ๋ค ์๋๋ฐ, ์ฃผ๋ง 2์ฃผ์งธ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถํ๊ธธ ์ํ ๊ฒ ๊ฐ๋ค.
์ต์ํ ํ์ด๋ฅผ ๋ณด๊ณ ์ดํด๋ ๋๋๊น! ํ ์ ์๋ค ๐
1) <br>
ํ๊ทธ๋ฅผ ์ฐ๋, ๋ชจ๋ฐ์ผ์์๋ display: none;
์ผ๋ก ์์ค๋ค.
2) <p>
ํ๊ทธ๋ก ๊ฐ์ธ์ ๊ฐํํ๋ ๋ฐฉ์
3) <span class="br"></span>
๋ฐฉ์์ ์๊ฒฌ์ด ๋๋๋ค.
4) ๊ฐํ์ ๋ชฉ์ ์ด ๊ฐ์กฐ๋ผ๋ฉด <strong>
์ด๋ <em>
์ผ๋ก ๊ฐํ์ ํ๊ธฐ๋ ํจ
์๋ณ์(identifier)๊ฐ ๋ค๋ฐ๋ฅด๋ at ๊ธฐํธ๋ก ์์ํ๋ CSS๋ฌธ์ ๋งํ๋ค.
์ง๊ธ๊น์ง ํ๋ฒ์ด๋ผ๋ ์จ๋ณธ ๊ฒ๋ค ์ ๋ฆฌ
@charset
โ ์คํ์ผ ์ํธ์ ์ํด ์ฌ์ฉ๋๋ ๋ฌธ์ ์งํฉ์ ์ ์ํจ.
@import
โ CSS ์์ง์๊ฒ ์ธ๋ถ ์คํ์ผ ์ํธ๋ฅผ ํฌํจํ๋๋ก ์๋ฆผ.
@media
โ media query๋ก ์ ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด ํด๋น ์ฝํ
์ธ ๋ฅผ ์ ์ฉํ๋ ๊ท์น.
@font-face
โ ๋ค์ด๋ก๋๋๋ ์ธ๋ถ ๊ธ๊ผด์ ์์์ ์ค๋ช
.
@keyframes
โ CSS ์ ๋๋ฉ์ด์
sequence ๋ด ์ค๊ฐ ๋จ๊ณ์ ์์์ ์ค๋ช
.
๋ฉ์ธ ํฐํธ์ ์์ฃผ ์ฐ๋ ๋ฉ์ธ ์ปฌ๋ฌ๋ค์ ๋ณ์๋ก ๋ง๋ค์ด๋๋ฉด ํธํ๋ค.
:root {
--๋ณ์์ด๋ฆ: ๊ฐ;
}
ํ์ var(--๋ณ์์ด๋ฆ);
์ผ๋ก ํธ์ถํ๋ฉด ๋๋ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/fontfaceobserver/2.1.0/fontfaceobserver.standalone.js"></script>
<script>
document.documentElement.classList.add('blocking-time');
setTimeout(function () {
document.documentElement.classList.remove('blocking-time');
}, 400)
var font = new FontFaceObserver('Nanum Pen Script');
// FontFaceObserver CDN ํ์ํจ
font.load(null, 300).then(function () {
document.documentElement.classList.add('fonts-loaded');
});
// ๋คํธ์ํฌ ์ํฉ์ ๋ง๊ฒ ์๊ฐ ์กฐ์
</script>
flex
์ดํดํ๊ธฐflex
๋ ํ๋์ flex-item์ด flex-container ๊ณต๊ฐ์ ๋ง์ถ๊ธฐ ์ํด ํฌ๊ธฐ๋ฅผ ํค์ฐ๊ฑฐ๋ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์ ํ๋ค./* Three values: flex-grow | flex-shrink | flex-basis */
์์๋๋ก ๋จ์ถ ์์ฑ./* One value, length or percentage: flex-basis */
/* One value, unitless number: flex-grow */
/* Two values: flex-grow | flex-basis(length or percentage) */
/* Two values: flex-grow | flex-shrink(unitless number) */
flex-basis
๋ ๊ธธ์ด(length)๋ฅผ ๋ํ๋ด๋ ๋จ์๋ค em
, rem
, px
ํน์ ํผ์ผํฐ์ง(%)๋ก ์ธ ์ ์๊ณ ,flex-basis: content;
๋ ์ฝํ
์ธ ํฌ๊ธฐ์ ๋ง๊ฒ ์๋์ผ๋ก ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋ค.flex-basis: auto;
๋ฅผ ์ฃผ๊ฒ ๋๋ฉด ๋ค๋ฅธ ๋ฐ์ค๊ฐ ๋์ด๋ ๋ ๊ฐ์ด stretch ๋๋ค.flex-basis
์flex-basis
๊ฐ ์ฐ์ ํ๋ค.flex-basis
๋ก ์ ํด์ฃผ๋ฉด flex-direction
์ด ๋ณํ๋๋ผ๋ ์ํ๋ ๋์ด๋ฅผ ์ ์งํ ์ ์๋ค.flex-grow
์ flex-shrink
๋ ๋จ์ ์์ด ์ซ์(number) ๋จ๋
์ผ๋ก ์ฐ์ธ๋ค. (1, 2, 0.5, ...)fr
๊ฐ๋
๊ณผ ์ ์ฌํ๋ค. (ํ์ flex-item๊ณผ ๋น๊ต)flex-grow
๋ ๋์ด๋๊ณ , flex-shirink
๋ ์ค์ด๋ ๋ค.flex-shrink
๊ฐ์ด 0์ด๋ฉด flex-item์ ํฌ๊ธฐ๋ฅผ ์ค์ด์ง ์๋๋ค.ul
๊ณผ li
๋ก ๋ง๋ ๋ค.margin-right: auto;
๋ฅผ ์ ์ฉํ๋ฉด ๋๋ค!display: none;
ํด๋๋ค๊ฐ, ๋ฏธ๋์ด ์ฟผ๋ฆฌ์์ display: block;
์ค์ ํ๊ณ order 1, ๋ฉ๋ด๋ค์ order 2 ๊ฐ์ ์ค์ ์ค๋ฅธ์ชฝ๊ณผ ๊ฐ์ด ๋ํ๋๊ฒ ํ๋ค. ๋๋ฌด ์ ์ฉํ๋ค :)flex-direction
์ row์์ column์ผ๋ก ๋ฐ๊พผ ๊ฒ์ด ์๋๋ผ, width๊ฐ์ 100%๋ก ์คฌ๋ค.position: fixed;
๋ฅผ ์ด๋ค. <script>
let ๋ชจ๋ฌ = false;
document.querySelector('.btn-close').addEventListener('click', function(){
if (๋ชจ๋ฌ == true){
document.querySelector('.๋ท๋ฐฐ๊ฒฝ').style.display = 'none';
๋ชจ๋ฌ = false;
}
});
document.querySelector('.btn-open').addEventListener('click', function(){
if (๋ชจ๋ฌ == false){
document.querySelector('.๋ท๋ฐฐ๊ฒฝ').style.display = 'flex';
๋ชจ๋ฌ = true;
}
});
</script>
querySelector
์ addEventListener
๋ฑ ์ฃผ๋ง์ ๊ณต๋ถํ๋ ๊ฐ๋
๋ค์ด๋ผ ์ดํดํ ์ ์์๋ค ๐
(https://ddooyn.github.io/front-end-school/class/001.%20flex/012.html)
์ฃผ์ด์ง ์๊ฐ ์์ ๋ ์ด์์ ์ฌ์ง์ ๋ณด๊ณ ํธ๋ค๋ฅ ๋ง๋ค์ด ๋ณด์๋๋ฐ, ์์์ ๋ฐฐ์ด ๋ฐ์ํ ์๋จ ๋ฉ๋ด๋ฐ๊น์ง๋ ์ ์ฉํ์ง ๋ชปํ๋ค. ์ฐฝ ํฌ๊ธฐ ์ค์ด๋ค ๋ aside๋ฅผ ์๋๋ก ๋ด๋ฆฌ๋ ๋ฐฉ๋ฒ ๋ฑ์ ํ์ ์ป์ ์ ์๋ ์๊ฐ์ด์๋ค :)
1) https://developer.mozilla.org/ko/docs/Web/CSS/At-rule
2) https://d2.naver.com/helloworld/4969726 ์น ํฐํธ ์ต์ ํ
3) https://developer.mozilla.org/ko/docs/Web/CSS/flex
4) https://developer.mozilla.org/ko/docs/Web/CSS/flex-basis
5) https://developer.mozilla.org/ko/docs/Web/CSS/flex-shrink