์ค๋์ ํ์์์ ๋ฐฐ์ด midiaQuery, flex, grid ๋ฅผ ๋ณต์ตํ ๊ฑฐ๋ค
๋ธ๋ ์ดํฌ ํฌ์ธํธ(์ข ๋จ์ )์ ์ด์ฉํด ์ด๋ค css๋ฅผ ์ ์ฉํ ์ง ์ง์
screen : ์ฃผ๋ก ํ๋ฉด์ด ๋์์ด๋ค (default ๊ฐ)
all : ๋ชจ๋ ์ฅ์น์ ์ ํฉ
print : ์ธ์ ๊ฒฐ๊ณผ๋ฌผ ๋ฐ ์ถ๋ ฅ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ๋ฉด์ ํ์ ์ค์ธ ๋ฌธ์
์์)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="./ssss.css" />
</head>
<body>
<div class="bk_div"></div>
</body>
</html>
.bk_div {
width: 200px;
height: 200px;
}
@media screen and (max-width:500px) {
.bk_div{
background-color: red;
}
}
@media screen and (min-width:501px) and (max-width:1000px) {
.bk_div{
background-color: yellow;
}
}
@media screen and (min-width:1001px){
.bk_div{
background-color: pink;
width: 1000px;
}
}
์ด๋ฌ๋ฉด ๊ฒฐ๊ณผ๋ ํ๋ฉด์ด 500px ์ดํ ์ผ๋๋ ๋ ๋๋ก ๋ณด์ด๊ณ
501px ์ด์์์ 1000px ์ดํ์ผ๋๋ ๋
ธ๋์, 1001px ์ด์๋ถํฐ๋ ํํฌ์์ผ๋ก ๋ณด์ด๊ณ
ํฌ๊ธฐ๋ 200px์์ 1000px๋ก ์๋์ผ๋ก ๋์ด๋๋ค.
min-width๋ ์ต์๊ฐ, max-width๋ ์ต๋ ๊ฐ์ด๋ค
ํด๋์ค๋ช
๋ค์ ์ค๊ดํธ ์์๋ ์คํ์ผ์ ์๋ฌด๊ฑฐ๋ ๋ฃ์ด๋ ๋๋ค
์๋ก๋ค๋ฉด font-size๋ผ๋์ง ๋ฑ๋ฑ
flex box
ํ ๋๋ ์ด๋ก ํญ๋ชฉ์ ๋ฌด๋ฆฌ๋ฅผ ๋ฐฐ์นํ๋ 1์ฐจ์ ๋ ์ด์์ ์์คํ
flex-direction
์ฃผ์ถ์ ๋ฐฉํฅ์ ์กฐ์ ํ๋ ์์ฑ
flex-wrap
ํญ๋ชฉ์ ์ค์ ์๋์ผ๋ก ๋ฐ๊ฟ์ง ๋ง์ง ์ง์
flex-flow
direction์ด๋ wrap์ ํ๋ฒ์ ์ค์์์
์๋ก ๋ค๋ฉด
flex-flow: row wrap;
<body>
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
</body>
body์์ div ํด๋์ค ์ด๋ฆ container์ ์ฃผ๊ณ ๊ทธ์์ div๋ฐ์ค 6๊ฐ๋ฅผ ๋ง๋ ๋ค
.container {
padding: 5px;
width: 500px;
height: 500px;
background-color: gray;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-content: space-between;
}
.container>div {
background-color: cadetblue;
border: 1px solid #000;
width: 49%;
height: 32%;
}
container ๋ฐ์ค์ ์ฌ์ด์ฆ๋ฅผ ๋ถ์ฌํ๊ณ display: flex๋ฅผ ์ฃผ๊ณ wrap์ ์ค์ ์ฌ๋ฌ์ค์ ๋ง๋ค๊ณ justify-content: space-between ์ฃผ ์ถ์ ์๋์ ๋๊ณ ์ฌ์ด์ ๋์ผํ ๊ฐ๊ฒฉ์ด ์ค๊ฒํ๋ค ๊ธฐ๋ณธ default๊ฐ์ผ๋ก ์ ๋ ฌ์ ์์์ ์๋๋ก ๋ฐฐ์น์์ผ๋๋ค
๊ฒฐ๊ณผ๋ !
ํ์ค์ด float ๋ณด๋ค๋ ๋ ์ด์์ ๋ฐฐ์น๊ฐ ๊ฐ๋จํ๊ณ ์ฌ์ด๊ฑฐ ๊ฐ๋ค!
flex css๋ฅผ ์ฐ์ตํ๋ฉด์ ํ๋ฉด ์ข์ ๊ฒ์
FLEXBOX FROGGY
https://flexboxfroggy.com/#ko
ํ๊ณผ ์ด์ ๋์์ ๋ง๋ค ์ ์๋ 2์ฐจ์์ ๋ ์ด์์ ์์คํ
์๊น flex๋ฅผ ์ด์ฉํด์ ๋ง๋ ๋ ์ด์์์ grid๋ฅผ ์ด์ฉํด์ ๋ง๋ค๊ฒ ๋๋ฉด
html ๋ฌธ์๋ ๋๊ฐ์๊ฑธ ์ฐ๊ณ
.container {
padding: 5px;
width: 500px;
height: 500px;
background-color: gray;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr;
gap: 5px;
}
.container > div {
background-color: cadetblue;
border: 1px solid #000;
}
์์๋ ๋๊ฐ์ด container์ ํจ๋ฉ 5px๋ฅผ ์ฃผ๊ณ ๋์ด๋ ๋์ด ์ฌ์ด์ฆ๋ฅผ ๊ฐ๊ฒ ์ฃผ๊ณ display: grid๋ฅผ ํด์ค์ผ ํ๋ค grid-template-columns์ผ๋ก ์ธ๋ก์ค์ ๋์นธ์ผ๋ก ๋์ด๋ ๋์ผํ ๋น์จ๋ก ๋ง๋ค๊ณ grid-template-rows๋ก ๊ฐ๋ก์ค์ ์ธ์นธ ๋์ผํ ๋น์จ๋ก ๋ง๋ ๋ค 1fr 1fr 1fr์ 1:1:1 ์ด๋ ๋ป์ด๋ค
gap: 5px์ ์ค์ ์ฌ์ด ๊ฐ๊ฒฉ์ 5px๋ก ๋์ผํ๊ฒ ์ค๋ค
๊ฒฐ๊ณผ๋ !
flex๋ ๋์ผํ๊ฒ ๋์จ๋ค ! ์ฌ์ค ์์ ๊ฐ๊ฒฉ์ด ๋ค๋ฅด๊ธด ํ๋ฐ ์ ์ด์ gap์ด๋ space-between ์ ๋ค๋ฅธ๊ฑฐ๋๊น ์์ ํ ๋๊ฐ๊ฒ ๋ชปํ๋๊ฑฐ ๊ฐ๋ค ,, ๋๋ flex๋ณด๋ค grid๊ฐ ๋ ์ด๋ ค์ด ๋๋ โฏ๏ธฟโฐ
๋ ์ฐ์ต ํด๋ด์ผ ๊ฒ ๋น
grid css ์ฐ์ตํ๊ธฐ ์ข์ ๊ฒ์
GRID GARDEN
https://cssgridgarden.com/#ko
๐์ค๋์ ํ๊ธฐ
grid-template-columns ๋ถ๋ถ์ด ํท๊ฐ๋ฆฐ๋ค ์์ง ใ ใ ๊ทธ๋๋ ๋ ์ด์์ ๋ช๋ฒ๋ ์ก์๋ณด๋ฉด ๊ฐ ์ก๊ฒ์ง ? ํ์ดํ ํ์ฅ !!!