์นํ์ด์ง์์ ๊ต์ฅํ ๋ง์ด ๋ณผ ์ ์๋ UI
ํน์ ์์ญ์ ์์น์, ํน์ ์ฌ์ด์ฆ์ ๋ ์ด์ด(์ฐฝ)๋ฅผ, ํน์ ์์ ์ ๋ ธ์ถ
1. ์ผ๋ฐ ํ์
๋ค์ด๋ฒ ๋ด์ค ๊ธฐ์ฌ ํ์ด์ง์์ ์ธ์ํ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ์์ ํ๊ฒ ์๋ก์ด ์ฐฝ์ผ๋ก ํ์
์ด ๋จ๊ฒ ๋๋ค.
์ด๊ฒ๋ ํ๋์ ๋ธ๋ผ์ฐ์ ์ด๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์๊ณ , ์์น๋ ์ฎ๊ธธ ์ ์๋ค.
์๋จ์ ํ์ด์ง ์ฃผ์๋ฅผ ๋ณต์ฌํด์ ์ ํญ์์๋ ์ด ์ ์๋ค.
๋ง์ฝ ๋ธ๋ผ์ฐ์ ์ค์ ์์ ํ์
์ฐจ๋จํ๋ฉด ํ์
์ ๋จ์ง ์์
2. Alert ํ์ (์์คํ ํ์ )
๊ฐ์ ์ปดํจํฐ ํ๊ฒฝ๊ณผ ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ผ์ ์ ํด์ง ๋์์ธ์ผ๋ก ๋จ๋ ํ์
.
๋ณ๋๋ก ๋งํฌ์
์ด๋ ๋์์ธ์ด ํ์ํ์ง ์๋ค.
3. ๋ ์ด์ด ํ์
์๋ ์๋ ์ฝํ
์ธ ์ ๋ฐํฌ๋ช
ํ ๋ฐฐ๊ฒฝ์ผ๋ก ๊น๋ฆฌ๊ณ ๊ทธ ์์ ํ์
์ด ๋ฌ๋ค.
์๋จ์ ์ฃผ์์ฐฝ๋ ์๊ณ ์ฎ๊ธธ ์๋ ์๋ค.
์ด ํ์
์ ์จ์ ํ๊ฒ ์ง๊ธ ํ์ฌ ์ด ๋ธ๋ผ์ฐ์ ์ ์ํด์๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฎ๊ฒจ์ผ์ง๋ง ์ฎ๊ฒจ์ง๋ค. ๋ ์ด์ดํ์
์ ์จ์ ํ ์ด ๋ธ๋ผ์ฐ์ ์ ์ํด์๋ ๋งํฌ์
์์์ผ๋ฟ.
์ด๋ ๊ฒ ๋งํฌ์ ์์๋ก ๋ง๋ ํ์ ์ Modal, ๋ ์ด์ด ํ์ ์ด๋ผ๊ณ ํ๋ค.
(Alert๋ ๋งํฌ์ ์ด ํ์ ์์.)
๋์์ธ์ ์ธ ํต์ผ์ฑ๊ณผ ์ฌ์ฉ์์๊ฒ ๋ ธ์ถ์ด ๋ ํ๋ฅ ์ด ์ข ๋ ๋๋ค๋ ์ฅ์ ์ผ๋ก ์์ฆ์๋ ๋ ์ด์ด ํ์ ์ ์ข ๋ ์ ํธ
ํนํ ๋ชจ๋ฐ์ผ์์๋ ์์ฐฝ์ผ๋ก ๋์ธ ๊ฒฝ์ฐ PC์ ๋นํด์ ๋ค์ ์๋ ํ์ด์ง๋ก ๋์๊ฐ๊ธฐ ์กฐ๊ธ ๋ฒ๊ฑฐ๋กญ๋ค. ๊ทธ๋์ ๋ชจ๋ฐ์ผ ์ฐฝ ์์ ๋ธ๋ผ์ฐ์ ์ ์ฒด๋ฅผ ๋ค๋ฎ๋ ๋ ์ด์ดํ์ ์ ์ข ์ข ์ฌ์ฉํ๋ค.
๋ ์ด์ด ํ์ ์ ํ์ ๋ฐ์ผ๋ก ๋ฐํฌ๋ช ํ ๋ค๋ ๋ฐฐ๊ฒฝ์ ๊น์์ ํ์ ์ธ์ ํ๋ฉด์ ํด๋ฆญ์ ๋ง๋๋ค. ์ด๋ค ํ์ด์ง์์๋ ์คํฌ๋กค ์์ฒด๋ฅผ ๋ง๋๊ฒ๋ ์กด์ฌํ๋ค.
๋๋ถ๋ถ ๋ทฐํฌํธ ๋ด์์ ์ค์์ ๋ ฌ์ด ๋๋๋ก ์ฒ๋ฆฌํจ.
CSS ์์ฑ๋ค ์กฐํฉ
tet-align:center;
vertical-align:middle;
margin:auto;
display:table | table-cell;
ํ ์คํธ ์์ญ+ํ๋จ์ ๋ฒํผ ์์ญ์ผ๋ก ๊ตฌ์ฑ
HTML
div, strong, p, button
CSS
float(float ํด์ ), width, min-height, padding, border, text-align, font-weight, font-size
ํ์ ์ ๋ณดํต ์ฝํ ์ธ ์์ญ ๋ฐ์ ๋ง๋ ๋ค.
์ ์ฒด ํ์ด์ง๋ฅผ ๋ค๋ฎ์ด์ผ ๋๋ ์ปดํฌ๋ํธ์ด๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ์ relative
๊ฐ ์๋ค๋์ง ์ด๋ฐ๊ฒ๋ค์ ๋ฐ๋ผ ์ํฅ์ ๋ฐ์ ์ ์๋ค. ๊ทธ๋์ ์์ ์ ์ผ๋ก ์ฝํ
์ธ ์์ญ ๋ฐ์ ํ์
์ปดํฌ๋ํธ๋ฅผ ๋ฃ์ด์ ์์
์ ํ๋ ํธ
<body>
<div class="content">
<!-- ์ฝํ
์ธ -->
</div>
<div class="popup">
<!--ํ์
-->
<div class="popup_layer"> <!--ํ์
์ฐฝ-->
<div class="text_area"><!--ํ
์คํธ ์์ญ-->
<strong class="title">ํ์
ํ์ดํ</strong>
<p class="text">ํ์
ํ
์คํธ ์์ญ</p>
</div>
<div class="btn_area"><!--๋ฒํผ ์์ญ-->
<button type="button" name="button" class="btn">์</button>
<button type="button" name="button" class="btn no">์๋์ค</button>
</div>
</div>
<div class="popup_dimmed"></div> <!--๋ฐํฌ๋ช
๋ฐฐ๊ฒฝ-->
</div>
</body>
.content {
height: 5000px;
}
.popup {
position: fixed; /*ํ์
์ ์ฒด๋ฅผ ์ฝํ
์ธ ๋ณด๋ค ์๋ก ๋์*/
/*dimmed ์์ญ์ด ์ฝํ
์ธ ๊ฐ ๊ธธ์ด์ง๋ ๊ฐ์ด ๊ธธ์ด์ง๊ฒ ํ๊ธฐ ์ํด relative๋์ fixed ์ฌ์ฉ. fixed๋ ๋ทฐํฌํธ, ์ฆ ํ์ฌ ๋ณด์ด๋ ๋ธ๋ผ์ฐ์ ํ๋ฉด ์ฌ์ด์ฆ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ์คํฌ๋กค์ ๋ด๋ ค๋ ๋ค๋ ๋ ์ด์ด๊ฐ ๋
ธ์ถ๋จ*/
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.popup_layer {
position: relative; /*z-index๋ ๋ฐ๋์ position:relative ์์ฑ ํ์*/
width: 300px;
min-height: 150px; /*min-height๋ก ๋์ด์์ด์ ํ
์คํธ๊ฐ ๊ธธ์ด์ง์ ๋ฐ๋ผ ๋์ด๊ฐ ์ปค์ง*/
padding-bottom: 50px; /*ํ
์คํธ๋ฅผ ์จ์ ํ ๋ณด์ด๊ฒ ํ๊ธฐ ์ํด ๋ฒํผ ๋ถ๋ถ์ padding์ผ๋ก ๋ฐ์ด์ค*/
background: #fff;
z-index: 10; /*dimmed๋ณด๋ค z-index ๋ํ*/
}
.text_area {
padding: 50px 30px 30px;
text-align: center
}
.btn_area {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 50px;
overflow: hidden; /*float ํด์ */
}
.btn {
float: left;
width: 50%;
height: 100%;
font-size: 15px;
font-weight: bold;
border: 0;
background: pink;
/*buttonํ๊ทธ์ ๊ธฐ๋ณธ ์์ฑ : box-sizing:border-box;
๋ฐ๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก width๊ฐ ์์ border์์ญ๊น์ง ํฌํจ๋จ*/
}
.btn.no {
background: lightblue;
}
.popup_dimmed {
position: absolute; /*๋์์ค*/
top: 0;
right: 0;
bottom: 0;
left: 0;
background: #000;
opacity: 0.3;
}
์ด๋ค ์์๋ฅผ ํน์ ๊ณต๊ฐ ์์์ ์ค์์ ๋ ฌํ๋๊ฑด ๋ ์ด์ด ํ์ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์์๋ ๋ง์ด ์ฌ์ฉ๋๋ ์ค์
1๋ฒ ์ฝ๋์์ ์์ ํ์ฌ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๋น๊ต์ ์ค์์ ๋ ฌํ๊ธฐ ์ฝ๋ค
/* IE7 ์ด์ ๋์ */
.popup_layer {
position: absolute; /*์์น ์ฎ๊ธฐ๊ธฐ ์ํด relative์์ ๋ณ๊ฒฝ*/
/*์ ์ฒด ๋ทฐํฌํธ์ ์ค์์ผ๋ก ์ค๋๋ก*/
top: 50%;
left: 50%;
width: 300px;
height: 150px;
padding-bottom: 50px;
margin: -100px 0 0 -150px; /*์์ margin์ผ๋ก ์ ์ค์์ผ๋ก ๋น๊ฒจ์ค*/
background: #fff;
z-index: 10;
}
/* IE8 ์ด์ ๋์ */
/*margin auto ์ฌ์ฉ*/
.popup_layer {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 300px;
height: 150px;
padding-bottom: 50px;
margin: auto;
background: #fff;
z-index: 10;
}
margin:auto;
๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ 0์ผ๋ก ์ฒ๋ฆฌ๋๊ธฐ๋ ํ๋ค.
0px๋ก ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ
auto๋ก ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ
marign:0 auto;
1) top+bottom+height
ํน์ 2) left+right+width
๊ฐ์ด ํจ๊ป ์๋ ๊ฒฝ์ฐ์ ๋ชจ๋ margindisplay:inline-block;
์ด์ฉ.popup {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
text-align: center; /*๋ถ๋ชจ ์์์ text-align ์ฃผ์ด์ผ ์์ ์๋ ์์ ์์๊ฐ ๊ฐ๋ก ์ค์์ผ๋ก ์ค๊ฒ๋จ*/
}
/*vertical-align:middle์ ์ ์ฉํ๊ธฐ ์ํ ๊ฐ์์์*/
.popup:after {
display: inline-block;
vertical-align: middle;
width: 0;
height: 100%;
content: '';
}
.popup_layer {
position: relative;
display: inline-block; /*์์ฑ ๋ณ๊ฒฝ*/
vertical-align: middle; /*ํ๋์ ์์์ ๋น๊ต๋์ด์ ์ ๋ ฌ์ ํ๋๊ฒ. ๋ฐ๋ผ์ ์ ๋ ฌ์ ํ๊ธฐ ์ํ ๊ฐ์์ ์์ ํ์*/
width: 300px;
min-height: 150px;
padding-bottom: 50px;
background: #fff;
z-index: 10;
}
display:table;
, table-cell;
์ด์ฉdiv 2๊ฐ ํ์
<div class="popup">
<div class="popup_wrap"><!--ํ์-->
<div class="popup_inner"><!--ํ์-->
<!-- ํ์
์์ญ -->
<div class="popup_layer">
<div class="text_area">
<strong class="title">ํ์
ํ์ดํ</strong>
<p class="text">ํ์
ํ
์คํธ ์์ญ</p>
</div>
<div class="btn_area">
<button type="button" class="btn">์</button>
<button type="button" class="btn no">์๋์ค</button>
</div>
</div>
<!-- // ํ์
์์ญ -->
</div>
</div>
<div class="popup_dimmed"></div>
</div>
. popup_wrap {
display: table;
table-layout: fixed; /*์ฑ๋ฅ์ ์ด์๋ก ๋ฐ๋์ ๋ฃ์ด์ฃผ๊ธฐ*/
width: 100%;
height: 100%;
}
. popup_inner {
display: table-cell;
vertical-align: middle;
text-align: center;
}
.popup_layer {
position: relative;
display: inline-block;
width: 300px;
min-height: 150px;
padding-bottom: 50px;
background: #fff;
z-index: 10;
}
์ฌ์ด์ฆ๊ฐ ๊ณ ์ ์ผ ๊ฒฝ์ฐ
position:absoulte;
| margin ๋ง์ด๋์ค ๊ฐ
์ฝํ
์ธ ๋๋น์ ๋ฐ, ๋์ด์ ๋ฐ๋งํผ margin ๋ง์ด๋์ค ๊ฐ์ผ๋ก top, left๋ก ๋น๊ฒจ์ค
margin๊ฐ์ ๋ํ ์ฐ์ฐ ํ์
position:absoulte;
| margin:auto;
margin๊ฐ์ ๋ํ ์ฐ์ฐ ํ์ ์์
์ฌ์ด์ฆ๊ฐ ๊ฐ๋ณ์ผ ๊ฒฝ์ฐ
display:inline-block;
| vertical-align:middle;
| text-align:center;
๋น ํ๊ทธ or ๊ฐ์ ์์ ํ๋ ํ์
display:table | table-cell;
๋ง์ ์ฝ๋ ์ค์ฒฉ ํ์