inline, block, inline-block, flex, inline-flex, grid, inline-grid, none
display๋ ์์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์จ๊ธฐ๊ฑฐ๋ ์์น๋ฅผ ์ค์ ํ๊ธฐ ์ํ ์ต์
์ผ๋ก, display๋ง ์ ์์๋ ๋ ์ด์์์ ๋ง์ ๋ถ๋ถ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ด๋ฒ ํฌ์คํ
์์ display ์ ์์ฑ์ธ inline, flex, inline-flex, block , inline-block, grid, inline-grid, none ์ ๊ตฌํ์ ํตํด ๊ฐ๊ฐ์ ํ์ ๋ฐฉ์์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์์๋ณด๊ธฐ ํธํ๋๋ก ๋ฐฐ๊ฒฝ์ ๋ธ๋, ์์๋ ๊ฐ๊ฐ ๋ ๋, ์ค๋ ์ง, ๊ทธ๋ฆฐ์ผ๋ก ํํํ๊ฒ ์ต๋๋ค.
inline : inline์ผ๋ก ํ์(width๋ ์์ ํฌ๊ธฐ)block : block์ผ๋ก ํ์inline-block : inline + block์ผ๋ก ํ์flex : ์์ ์์๋ฅผ ๋ชจ๋ inline-block์ผ๋ก ์ค์ inline-flex : inline + flex(์ ์ฒด width๋ ์์ width์ ํฉ)grid : flex์ฒ๋ผ ํ ๋ฐฉํฅ์ด ์๋ ๊ฐ๋ก, ์ธ๋ก๋ก ์ค์ ๊ฐ๋ฅํ ๋ ์ด์์inline-grid : inline + grid(์ ์ฒด width๋ ์์ width์ ํฉ)none : ํ์ํ์ง ์์(๊ณต๊ฐ์ ์ฐจ์งํ์ง ์์)
์ค๋ฐ๊ฟ ์์ด ํ๊ทธ๋ฅผ ํ์ํ๋ ์์๋ฅผ inline ์์, ํ๊ทธ๋ง๋ค ์ค๋ฐ๊ฟ์ด ๋๋ ์์๋ฅผ block ์์๋ผ๊ณ ํฉ๋๋ค.
๋ํ์ ์ธ inline ์์๋ <span>, <a> ๋ฑ์ด ์์ผ๋ฉฐ, block ์์๋ <div>,<p>,<h1>,<h2> ๋ฑ์ด ์์ต๋๋ค.
๋จผ์ ์๋ฌด ์์ฑ๋ ์ค์ ํ์ง ์์ div๋ฅผ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
.setContainer{
background-color:black;
}
.setOne{
background-color: red;
}
.setTwo{
background-color: orange;
width:95%;
}
.setThree{
background-color: green;
width:90%;
}
<div class='setContainer'>
<div class='setOne'>
red
</div>
<div class='setTwo'>
org
</div>
<div class='setThree'>
grn
</div>
</div>
div์ default ์ค์ ์ width 100%์
๋๋ค.
๊ธฐ๋ณธ ์ค์ ์ ํ์ธํ๊ธฐ ์ํด setTwo์ setThree์ width๋ฅผ ์ค์ ํ ๊ฒฐ๊ณผ์
๋๋ค.
๋จผ์ display์ inline ์์ฑ์ ํ์ธํด๋ณด์ฃ .
1. inline
์ ์์ฑ์ ๋ง ๊ทธ๋๋ก ์์๋ฅผ ์ผ๋ ฌ๋ก ๋์ด์ ๋ฐฉ์์ผ๋ก ํ์ํ๋ฉฐ ์ค๋ฐ๊ฟ์ ํ์ง ์์ต๋๋ค.
๊ฐ ์์๋ง๋ค ์ค์ ํ๋ฉฐ width๋ ์๋์ผ๋ก ํฌ๊ธฐ์ ๋ง๊ฒ ๋ณํ๋ฉ๋๋ค.
.setContainer{
background-color:black;
display:inline;
}
.setOne{
background-color: red;
display:inline;
}
.setTwo{
background-color: orange;
display:inline;
}
.setThree{
background-color: green;
display:inline;
}
<div class='setContainer'>
<div class='setOne'>
red
</div>
<div class='setTwo'>
org
</div>
<div class='setThree'>
grn
</div>
</div>
inline ์ ์์ ๊ฐ์ด ๋ฌธ์์ด์ฒ๋ผ ์ผ๋ ฌ๋ก ๋์ด์ ์ํ๋ก ํ์๋ฉ๋๋ค.
2. block
block ์ inline ์์๋ฅผ block์ผ๋ก ํ์ํฉ๋๋ค.
block ์์ div ๋์ inline ์์ span์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์๋ฐ์.
์์์ div์ display:inline์ ์ค์ ํ ๊ฒ๊ณผ ๊ฐ์ ๋ชจ์์
๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก span์ display:block์ ์ค์ ํ๋ฉด ๋ฐ๋๋ก div๋ฅผ ์ฌ์ฉํ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
.setContainer{
background-color:black;
}
.setOne{
background-color: red;
display:block;
}
.setTwo{
background-color: orange;
display:block;
}
.setThree{
background-color: green;
display:block;
}
<div class='setContainer'>
<span class='setOne'>red</span>
<span class='setTwo'>org</span>
<span class='setThree'>grn</span>
</div>
block ์์ฑ์ inline ์์๋ฅผ block ์์์ฒ๋ผ ํํํ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
3. inline-block
๊ทธ๋ ๋ค๋ฉด inline-block์ ์ธ์ ์ฌ์ฉํ ๊น์?
display:block์ด ํ์ํ์ง๋ง ํ์๋ inline์ผ๋ก ํ์๋ฅผ ํ๊ณ ์ถ์ ์ํฉ์
๋๋ค.
๊ทธ๋ฌ๋ฉด ๊ทธ๊ฒ ๊ทธ๋ฅ span์ default ์๋๊ฐ๋ผ๊ณ ์๊ฐํ ์๋ ์์ง๋ง span์๋ width, height ๋ฑ ์์ฑ์ด ์ ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ block์ผ๋ก ์ค์ ์ ํด์ผ ํฉ๋๋ค.
์์ ์ฝ๋์์ ์ฒซ ๋ฒ์งธ ์์์ width:300px, height:200px๋ฅผ ์ค์ ํ๋ฉด ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๋ชจ์ต์ด ๋ฉ๋๋ค.
์ ์์๋ฅผ inline์ผ๋ก ์ค์ ํ๊ธฐ ์ํด inline-block๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
.setContainer{
background-color:black;
}
.setOne{
background-color: red;
display:inline-block;
width:300px;
height:200px;
}
.setTwo{
background-color: orange;
display:inline-block;
}
.setThree{
background-color: green;
display:inline-block;
}
<div class='setContainer'>
<span class='setOne'>red</span>
<span class='setTwo'>org</span>
<span class='setThree'>grn</span>
</div>
div๋ฅผ ์ฌ์ฉํด ์์ ๊ฐ์ด ๋ํ๋ด๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
.setContainer{
background-color:black;
}
.setOne{
background-color: red;
display:inline-block;
width:300px;
height:200px;
}
.setTwo{
background-color: orange;
display:inline;
}
.setThree{
background-color: green;
display:inline;
}
<div class='setContainer'>
<div class='setOne'>
red
</div>
<div class='setTwo'>
org
</div>
<div class='setThree'>
grn
</div>
</div>
์์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๋ง์ฝ ์์ ๊ฐ์ด ์ฌ๊ฐํ ์ฌ์ด ์ฌ์ด์ ๋น๊ณต๊ฐ์ด ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๋ฉด <div> ํ๊ทธ ์ฌ์ด์ ๋์์ฐ๊ธฐ๋ ์ค๋ฐ๊ฟ์ ํ์ธํด๋ด์ผ ํฉ๋๋ค.
๋ณด๊ธฐ์๋ ์์ข์ง๋ง ๋ค์๊ณผ ๊ฐ์ด ํ๊ทธ ์ฌ์ด๋ฅผ ๋ชจ๋ ๋ถ์ฌ์ฐ๋ฉด ๊ณต๋ฐฑ์ด ๋ฐ์ํ๋ ๊ฒ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
<div class='setContainer'><div class='setOne'>red</div><div class='setTwo'>org</div><div class='setThree'>grn</div></div>
4. flex
flex ๋ ์๋ก์ด ์์ฑ ์ค ํ๋๋ก ๋ถ๋ชจ ์์์์๋ง ์ค์ ์ ํฉ๋๋ค.
display:flex๋ฅผ ์ค์ ํ๋ฉด ๋ชจ๋ ์์ ์์์ display:inline-block์ ์ค์ ํ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ์ค๋๋ค.
๋ฐ๋ผ์ ๋ชจ๋ ์์ ์์๋ display๋ฅผ ์ค์ ํ ํ์ ์์ด width, height ๋ฑ์ ์์ฑ์ด ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
.setContainer{
background-color:black;
display:flex;
}
.setOne{
background-color: red;
}
.setTwo{
background-color: orange;
width:200px;
}
.setThree{
background-color: green;
}
<div class='setContainer'>
<div class='setOne'>
red
</div>
<div class='setTwo'>
org
</div>
<div class='setThree'>
grn
</div>
</div>
๊ฐ๋ณ ์์์ ๋ชจ๋ display๋ฅผ ์ค์ ํ ํ์ ์์ด ๋ถ๋ชจ ์์์์๋ง ํธํ๊ฒ ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ง์ฝ ์์ ์์๋ฅผ ๊ฐ์ด๋ฐ ์ ๋ ฌํ๊ณ ์ถ์ผ๋ฉด ๋ถ๋ชจ ์์์์ justify-content:center;๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
5. inline-flex
flex ๋ ์ด๋ฏธ inline-block์ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์๋๋ฐ ๊ทธ๋ผ inline-flex์ ๊ธฐ๋ฅ ๋ฌด์์ผ๊น์?
๋ฐ๋ก inline ํน์ง ์ค ํ๋์ธ ์๋ ํฌ๊ธฐ ์กฐ์ ์
๋๋ค.
inline-flex๋ ์์ ์์๋ฅผ ํฉ์น ํฌ๊ธฐ ๋งํผ๋ง ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ฏ๋ก width๋ 100%๊ฐ ์๋ ์์ ํฌ๊ธฐ์ ํฉ์
๋๋ค.
flex์ ๊ฒฐ๊ณผ์ ๋น๊ตํด๋ณด๋ฉด ์ ์ ์๋ฏ์ด ๋ถ๋ชจ ์์๋ฅผ ์๋ฏธํ๋ ๋ธ๋์ด ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ์์ง ์์ต๋๋ค.
6. grid, inline-grid
์ด grid๋ ๋ฌด์์ผ๊น์?
๊ทธ๋ฆฌ๋๋ flex์ฒ๋ผ ๊ฐ๋ก๋ ์ธ๋ก ํ ๋ฐฉํฅ์ผ๋ก๋ง ๋ ์ด์์์ ์ค์ ํ๋ ๊ฒ์ด ์๋๋ผ ๊ฐ๋ก, ์ธ๋ก ๋ ๋ฐฉํฅ ๋ชจ๋ ์ค์ ํ ์ ์๋ ์์ฑ์
๋๋ค.
grid ์ญ์ ๋ถ๋ชจ ์์์์ ์ค์ ์ ํ๋ฉฐ ์์ ์์๋ฅผ block์ผ๋ก ํํํฉ๋๋ค.
๋ค์ํ ์์ฑ์ ํตํด ๋ ์ด์์์ ๊ตฌ์ฑํ๋๋ฐ ํจ๊ณผ์ ์ด์ง๋ง ๋ด์ฉ์ด ๋ง์ ๋ค๋ฅธ ํฌ์คํ
์ ํตํด ์ข ๋ ์์๋ด์ผ ํ ํ์์ฑ์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค.
.setContainer{
background-color:black;
display:grid;
grid-template-columns: 100px 100px 100px;
}
.setOne{
background-color: red;
}
.setTwo{
background-color: orange;
}
.setThree{
background-color: green;
}
<div class='setContainer'>
<div class='setOne'>
red
</div>
<div class='setTwo'>
org
</div>
<div class='setThree'>
grn
</div>
</div>
inline-grid ์ญ์ inline-flex ์์ฑ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก width๋ฅผ ์์ ์์์ ๋ง๊ฒ ์กฐ์ ํ๋ ๊ธฐ๋ฅ์ ํฉ๋๋ค.
7. none
none ์ ํด๋น ์์๋ฅผ ํ์ํ์ง ์์ผ๋ฉฐ ๊ณต๊ฐ๋ ์ฐจ์งํ์ง ์๋ ๋ฐฉ์์
๋๋ค.
.setContainer{
background-color:black;
}
.setOne{
background-color: red;
display:none;
}
.setTwo{
background-color: orange;
}
.setThree{
background-color: green;
}
<div class='setContainer'>
<div class='setOne'>
red
</div>
<div class='setTwo'>
org
</div>
<div class='setThree'>
grn
</div>
</div>
์ด๋ ๊ฒ ์๋ ๋ ์ทจ๊ธ์ ํฉ๋๋ค.
์ด์ ๋ฐ๋๋๋ ์์ฑ์ด visibility ๋ก ์ด๋ ๊ณต๊ฐ์ ์ฐจ์งํ๋ ํ์๋ง ํ์ง ์๋ ์์ฑ์
๋๋ค.
visibility, display ์ฌ์ฉ ๊ด๋ จ ํฌ์คํธ
display:none์ visibility:hidden์ผ๋ก ๋ณ๊ฒฝํ ๊ฒฐ๊ณผ์
๋๋ค.
์๋๋ฐ ์๋ ์ฒ์ ํฉ๋๋ค.
๋ฌผ๋ก visibility๋ ๊ณต๊ฐ๋ง ์ฐจ์งํ ๋ฟ ํ ์ ์๋ ์ผ์ ์์ต๋๋ค.
CSS์ ๊ธฐ๋ณธ์ด์ง๋ง ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ค ์ดํดํ๊ณ ์ฌ์ฉํ๊ธฐ๊น์ง๋ ์ด๋ ์ ๋์ ์๊ฐ๊ณผ ๊ฒฝํ์ด ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌด์์ ์ธ์ฐ๊ธฐ๋ณด๋ค๋ ์ฌ์ฉํ๋ฉด์ ๋ต๋ตํจ์ด ์์์ ๋ ํ๋ฒ์ฉ ์ํ์ ๋๋์ผ๋ก ์ค๋ช
์ ์ผ์ผ์ฃผ๋ฉด ์กฐ๊ธ ๋ ์๋ฟ๋ ์ค๋ช
์ด ๋์ง ์๋ ์ถ์ต๋๋ค..๐ง