๋ ์ด์์์ ์ฌ์ ์ ์๋ฏธ
: ์ฑ
์ด๋ ์ ๋ฌธ, ์ก์ง ๋ฐ์์์ ๊ธ์ด๋ ๊ทธ๋ฆผ ๋ฐ์๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ๋ฆฌํ๊ณ ๋ฐฐ์นํ๋ ์ผ.
์ด์ฒ๋ผ ์น์์ ๋์์ธ์ด ๋ ์นํ์ด์ง์ ๊ตฌ์ฑ ์์๋ค์ ํจ๊ณผ์ ์ผ๋ก ์ ๋ฆฌํ๊ณ ๋ฐฐ์นํ๋ ์ผ์ layout์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ ์ด์์์ ๋ฐฐ์น ๊ตฌ์ฑ์ ๋ฐ๋ผ์ ๋ค์ํ ์ข
๋ฅ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋ณดํต ๋ ์ด์์์ ๊ทธ๋ฆฌ๋๋ก ์ง์ธ ๊ตฌ์ฑ ์์๋ ์์น์ ๋ฐ๋ผ์ ๋ถ๋ฆฌ๋ ๋ํ์ ์ธ ์ด๋ฆ์ด ์๋ค.
1๋จ ๋ ์ด์์
: ๊ทธ๋ฆฌ๋ ๋ ์ด์์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๋ ์ด์์.
ํค๋ ์์ญ, ์ฝํ ์ธ ์์ญ, ํธํฐ ์์ญ์ด ์ง๋ ฌ๋ก ์ฐ๊ฒฐ๋ ํํ
ex) ๋ค์ด๋ฒ ์ผํ, ๋ค์ด๋ฒ ์ฌ์ , ๋ค์ด๋ฒ ํฌ์คํธ
ํน์ํ ์ํฉ์ ๋ ์ด์์์ด ์๋๋ฉด ๋๋ถ๋ถ์ ๊ธฐ๋ณธ ๋ ์ด์์์ header ์์ญ, content ์์ญ, footer ์์ญ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๋ ์ด์์์ ์ง์ ์ง์ ์์
ํด์ผํ๋ ์ค๋ฌด์๋ค์ ์น์ฌ์ดํธ์ ๋์์ธ์ ๋ณด๊ณ ๊ฐ ์์ญ์ ๋ฒ์๊ฐ ์ด๋์ธ์ง๋ฅผ ํ์
ํ๋๊ฒ์ผ๋ก ์์
์์.
๋ฐ๋ผ์ ๋ค์ํ ๋ ์ด์์์ ๊ฒฝํํ๊ณ ์ดํด๋ณด๋ ์ฐ์ต์ด ํ์ํ๋ค.
header, content, footer๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ง 1๋จ ๋ ์ด์์์ ๋ง๋๋๊ฒ์ด ๋ชฉํ
์ฟคํ
์ธ ์ต๋๊ฐ๋ก๊ธธ์ด 1200px
์ฝํ
์ธ ์ต์๊ฐ๋ก๊ธธ์ด 800px
์ฝํ
์ธ ๋ด์ฉ ๊ฐ์ด๋ฐ ์ ๋ ฌ
<!-- div๋ฅผ ์ด์ฉํ 1๋จ ๋ ์ด์์ -->
<div class="wrap">
<div class="header">header</div>
<div class="content">content</div>
<div class="footer">footer</div>
</div>
<!-- html5๋ฅผ ์ด์ฉํ 1๋จ ๋ ์ด์์ -->
<div class="wrap">
<header>header</header>
<section>content</section>
<footer>footer</footer>
</div>
wrap: 1๋จ ๋ ์ด์์์ ์ ์ฒด ํ ๊ฒฐ์
์ผ๋ฐ์ ์ผ๋ก ๋ ์ด์์ ๋ง๋ค๋ wrap, wrapper๋ฑ์ ์ด๋ฆ์ ์ฃผ์ด์ ๋ถ๋ชจ์์๋ฅผ ๋ง๋ค์ด์ฃผ๋๊ฒ์ด ์ผ๋ฐ์
wrap ์์ ํ์ํ ์์๋ค ๋ฐฐ์นํด์ ๋ ์ด์์ ์์ฑ
.header{
height: 100px;
background-color: lightgreen;
}
.content{
height: 300px;
background-color: lightsalmon;
}
.footer{
height:100px;
background-color: lightblue;
}
.header{
height: 100px;
background-color: lightgreen;
}
.content{
max-width: 1200px; /* ์ต๋ ๊ฐ๋ก๊ธธ์ด 1200px */
height: 300px;
margin: 0 auto; /* ๋ธ๋ญ์์ ๊ฐ์ด๋ฐ ์ ๋ ฌ */
background-color: lightsalmon;
}
.footer{
height:100px;
background-color: lightblue;
}
.wrap {
text-align:center;
min-width: 800px; /* ์ต์ ๊ฐ๋ก๊ธธ์ด 800px */
}
.header{
height: 100px;
background-color: lightgreen;
}
.content{
max-width: 1200px; /*์ต๋ ๊ฐ๋ก๊ธธ์ด 1200px*/
height: 300px;
margin: 0 auto; /*๊ฐ์ด๋ฐ ์ ๋ ฌ*/
background-color: lightsalmon;
}
.footer{
height:100px;
background-color: lightblue;
}
max-width๋ฅผ ์ด์ฉํ ์ต๋๊ธธ์ด ์ค์
min-width๋ฅผ ์ด์ฉํ ์ต์๊ธธ์ด ์ค์
ex) ๋ค์ด๋ฒ ๋ฎค์ง, ๋ค์ด๋ฒ ์ง์๋ฐฑ๊ณผ, ๋ค์ด๋ฒ ๋ ์จ
header, footer, content, aside(side), visual ์์ญ
content์ ์์ญ์ ์ปฌ๋ผ๋ณ๋ก ๋๋์ด์ง ๋ ์ด์์์ ๋ค๋จ ๋ ์ด์์์ด๋ผ ํ๋ค.
์ปฌ๋ผ์ด ๋๊ฐ๋ก ๋๋์ด์ ธ ์์ผ๋ฉด 2๋จ ๋ ์ด์์
content ์์ญ์ 3๊ฐ๋ก ๋๋๋ฉด 3๋จ ๋ ์ด์์
์ปฌ๋ผ์ ๋๋๋ ์์ ๋ฐ๋ผ์ ๋ค๋จ ๋ ์ด์์์ ๊ฐ์๊ฐ ์ ํด์ง๋ค.
container์ ๋ด์ฉ์ด content์ side ์์ญ์ผ๋ก ๋๋๋ค.
์ด๋ content์ side ์์ญ์ ๊ฐ๋ฅด๋ border, ๊ตฌ๋ถ์ ์ด container์ ์ต์ ๋์ด์ ๋ฐ๋ผ ๊ฝ์ฐฌ ๊ธธ์ด๊ฐ ๋๋๋ก ๋ง๋๋๊ฒ์ด ๋ชฉํ
์ฝํ
์ธ ๊ฐ๋ก ๊ธธ์ด 500px
์ฌ์ด๋๋ฉ๋ด ๊ฐ๋ก ๊ธธ์ด 300px
์ฝํ
์ธ ์ต์ ๋์ด 100%
<div class="wrap">
<div class="header">header</div>
<div class="container"> <!-- content์ aside์ ๋ฌถ์ ์์ญ ์ถ๊ฐ -->
<div class="content">content</div>
<div class="aside">aside</div>
</div>
<div class="footer">footer</div>
</div>
content, aside๋ฅผ container๋ก ๋ฌถ์ด์ค
html, body, .wrap{
height:100%: /*min-height๊ฐ ์ ์ฉ ์ํด*/
}
.header {
height:100px;
background-color: lightgreen;
}
.container {
position: relative; /* position ๊ธฐ์ค์์ญ ์ค์ */
width: 800px; /*์์์์ float ๋๊ฐ๋ฅผ ๋ฐ์๋ค์ผ ์ ์์ ์ ๋์ ํฌ๊ธฐ*/
margin: -100px auto; /*๊ฐ์ด๋ฐ ์ ๋ ฌ*/
min-height:100%; /*์ต์๋จ์ ๋ถ๋ชจ ์์๋ก๋ถํฐ ์์๋ฐ์์ผํจ*/
padding:100px 0;
box-sizing:border-box; /*padding๊ฐ์ด ๋์ด๊ฐ์ ์ํฅ์ ์ฃผ์ง ์๊ฒ ํ๊ธฐ ์ํด*/
}
.container:after { /*footer ์ํ float ํด์ */
display: block;
clear: both;
content: '';
}
.content {
float: left; /*์ ๋ ฌ*/
width: 500px;
height: 300px;
background-color: lightsalmon;
}
.aside {
float: left; /*์ ๋ ฌ*/
width: 300px;
height: 300px;
background-color: lightseagreen;
}
.aside:after{ /* ๊ตฌ๋ถ์ ๋ง๋ค๊ธฐ */
/*๊ฐ์ ์๋ฆฌ๋จผํธ๋ก ๋ํ์ ๋ง๋ค์ด์ ๋์์ค*/
content:''; /*๋น content*/
position:absolute;
right:300px;
top: 100px;
bottom: 100px;
width:5px;
background-color: #000;
}
.footer {
height:100px;
background-color: cornflowerblue;
}
html, body, .wrap{
height:100%;
}
.header {
height:100px;
background-color: lightgreen;
}
.container {
display: table;
/*๊ณ ์ ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ฒ*/
table-layout:fixed;
width: 800px;
margin: -100px auto;
min-height:100%;
padding: 100px 0;
box-sizing:border-box;
}
.content {
display: table-cell;
width: 495px; /* -5px ํ์ฌ ์ถ๊ฐ๋ ๊ตฌ๋ถ์ ๋งํผ ๋นผ๊ธฐ */
background-color: lightsalmon;
border-right: 5px solid #000; /* border๋ฅผ ์ด์ฉํด ๊ตฌ๋ถ์ ์ถ๊ฐ */
}
.aside {
display: table-cell;
background-color: lightseagreen;
}
.footer {
height:100px;
background-color: cornflowerblue;
}
float ๋ฐฉ๋ฒ๊ณผ ์ฐจ์ด์
container๊ณผ ๊ธธ์ด์ง๊ฑฐ๋ ์งง์์ง์๋ก ๋์ด๋ฅผ ์์ํด์ table-cell๋ค์ด ๋์ด๊ฐ์ ํจ๊ป ์์๋ฐ์ ์ ์ฉ๋๋ค.
-> ์์ ์์๋ค์ height๊ฐ ํ์ ์์
-> ๊ตฌ๋ถ์ ๋ฃ์๋ content์ border๋ aside์ border๋ฅผ ์ด์ฉํ๋ฉด ๋๋ฏ๋ก ํธ๋ฆฌ
float์ ์ด์ฉํ ๋ ์ด์์
float์ ํด์ ํ๋ ์ฝ๋๊ฐ ๋ฐ๋์ ํ์
content ์์ญ๊ณผ side ์์ญ์ ๊ตฌ๋ถ์ ์ ๋ฃ๊ธฐ ์ํด์ container์ ๋์ด๊ฐ์ ์ต๋ํ ํ์ฉํด์ ๋ง๋๋ ๋ฐฉ๋ฒ ์ด์ฉ
display:table์ ์ด์ฉํ ๋ ์ด์์
container์ ๋์ด๊ฐ์ ๊ธฐ์ค์ผ๋ก table-cell์ ๋์ด๊ฐ์ด ์์๋๋ฏ๋ก border๋ง ์ฃผ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ ํธ๋ฆฌํ๊ฒ ๊ตฌ๋ถ์ ์ ๋ง๋ค ์ ์์๋ฐ.
๋ค๋จ ๋ ์ด์์์ ๋ง๋๋๊ฒ์ ๋ด๊ฐ ์ด๋ค ์์ฑ์ ์ด์ฉํด์ ๊ฐ ์์ญ์ ๋ฐฐ์นํ ๊ฒ์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์ฌ์ดํธ์ ๊ตฌ์ฑ์ ์ด๋ค ๋ ์ด์์์ด ์ ํฉํ ์ง ๊ณ ๋ฏผ์ด ๋ง์ด ํ์ํ ์์
์ด๋ค.
๊ทธ๋์ ์ํฉ์ ๋ง๋ ๋ฐฉ๋ฒ์ ์ ์ ํํด์ ์ ์ฉํ๋๊ฒ์ด ํ์ํ๋ค.
fixed ๋ ์ด์์
์๋จ์ด๋ ์ํ๋จ์ด ๊ณ ์ ๋๋ ๋ ์ด์์
ex) ์ํํธ์จ์ด์ผ ๋์, ์ค๋์ค ํด๋ฆฝ, ๋ผ์ธ
content์ ๋ด์ฉ์ด ๊ธธ์ด์ ๋ฉ์ธ ๋ฉ๋ด๋ ์ปจํธ๋กค ์์ญ์ ์ต์๋จ์ ๊ณ ์ ์ํค๊ณ ์ฌ์ฉ์์ ์ ๊ทผ์ ์ฝ๊ฒ ํด์ฃผ๋ UI๋ฅผ ์๋จ ๊ณ ์ ํ ๋ ์ด์์์ด๋ผ๊ณ ํ๋ค.
header ์๋จ ๊ณ ์
footer ํ๋จ ๊ณ ์
์ฝํ
์ธ ์ต์ ๋์ด 100%
<div class="wrap">
<div class="header">header</div>
<div class="container">
<div class="content">content</div>
</div>
<div class="footer">footer</div>
</div>
์๋จ ๊ณ ์ ๋ ์ด์์
html,
body,
.wrap {
height: 100%;
/*์์ํ๊ธฐ ์ํ ๋ถ๋ชจ์ height*/
}
.header {
position: fixed;
top: 0; left: 0; right: 0;
height: 100px;
background-color: lightgreen;
}
.container {
min-height: 100%;
/*height๋ฅผ %๋ก ์ง์ ํ๊ธฐ ์ํด์๋ ๋ถ๋ชจ์์๋ก๋ถํฐ ๋์ด๊ฐ ์์๋ฐ์์ผํจ*/
margin-top: -100px; /*footer์ฌ๋ฆฌ๊ธฐ ์ํด*/
}
.content{
height: 300px;
padding-top: 200px; /* ๊ฐ๋ ค์ง height์ ๋์ด๊ฐ๊ณผ ๋์ด์ฌ๋ฆฐ footer์ ๋์ด๊ฐ์ ํฉ์น ๊ฐ์ padding-top์ผ๋ก ๋ฐ์ด์ค๋ค. */
background-color: lightsalmon;
}
.footer{
position: fixed;
bottom: 0; left: 0; right: 0;
height:100px;
background-color: lightblue;
}
box-sizing ์์ฑ์ ์ด์ฉํ ์๋จ ๊ณ ์ ๋ ์ด์์
html,
body,
.wrap {
height: 100%;
}
.header {
position: fixed;
top: 0; left: 0; right: 0;
height: 100px;
background-color: lightgreen;
}
.container {
min-height: 100%;
margin-top: -100px;
padding-top: 200px; /* ๊ฐ๋ ค์ง header์ ๋์ด์ฌ๋ฆฐ footer์ ๋์ด๊ฐ ๋งํผ ๋ถ์ฌ */
box-sizing: border-box; /* padding์ด๋ border๋ฅผ ์ปจํ
์ธ ์ ๋ถ์ฌ๋ ๋์ด๊ฐ์ ํฌํจ */
}
.content{
height: 300px;
background-color: lightsalmon;
}
.footer{
position: fixed;
bottom: 0; left: 0; right: 0;
height:100px;
background-color: lightblue;
}
์ํ๋จ ๊ณ ์ ๋ ์ด์์
html,
body,
.wrap {
height: 100%; /* ๋ถ๋ชจ์์์ height 100% ๋ถ์ฌ */
}
.header{
position: fixed;
top: 0; left: 0; right: 0;
height: 100px;
background-color: lightgreen;
}
.container {
min-height: 100%;
padding: 100px 0; /* height, footer ๋ค๋ก ๊ฐ๋ ค์ง ์์ญ ๋
ธ์ถ */
box-sizing: border-box; /* padding๊ฐ์ ๋์ด์์ ๋ฌด์ํ๋๋ก ์์ฑ ์ถ๊ฐ */
}
.content{
height: 300px;
background-color: lightsalmon;
}
.footer{
position: fixed;
bottom: 0; left: 0; right: 0;
height:100px;
background-color: lightblue;
}
position:fixed๋ฅผ ์ด์ฉํ ์์ญ ๊ณ ์ ๋ฐฉ๋ฒ ์ค์ต
position:fixed๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ธฐ์ค์ผ๋ก ํญ์ ํ๋ฉด์ ๋์ฐ๋ ํํ๋ฅผ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋์์ธ์ ์์ด์ fixed๊ฐ ๋ค์ด๊ฐ๋ ์์น์ ๋ํด์ ์ ํํ ํ์
ํ๊ณ ์ฌ์ฉํ๋๊ฒ์ด ์ข๋ค.
height์ ์์
height๋ฅผ %๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๊ผญ ๋ถ๋ชจ์๊ฒ์ ๋ถ์ฌ๋ฐ์ ๋์ด๋ฅผ ์์๋ฐ์์ผํ๋ค. ์ค์
๋์ด๊ฐ์ 100%๋ ๋ธ๋ผ์ฐ์ ์ ๋ณด์ฌ์ง๋ ๋ถ๋ถ๊น์ง๋ง์ ๋์ด๊ฐ์ ๋ฐ์ ์ ์๋ค.
์์ margin์ ์ด์ฉํ content ๋์ด 100% ํ๋ณด
์์ margin์ ํ์๋๋ ์ ์ฒด ๋ ์ด์์์ ๋ค๋ฅธ ์ํฅ์ ์ฃผ์ง ์๋๋ก ์ดํดํ๊ณ ์ฌ์ฉํด์ผํ๋ค.