๐Ÿ’›[๋ถ€์ŠคํŠธ์ฝ”์Šค_์›น UI ๊ฐœ๋ฐœ] 18. ๋ ˆ์ด์–ดํŒ์—…

๐Ÿ‘พยท2021๋…„ 2์›” 1์ผ
2

HTML & CSS

๋ชฉ๋ก ๋ณด๊ธฐ
18/20

ํŒ์—… ์†Œ๊ฐœ

์›นํŽ˜์ด์ง€์—์„œ ๊ต‰์žฅํžˆ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ๋Š” UI

ํŠน์ • ์˜์—ญ์˜ ์œ„์น˜์—, ํŠน์ • ์‚ฌ์ด์ฆˆ์˜ ๋ ˆ์ด์–ด(์ฐฝ)๋ฅผ, ํŠน์ • ์‹œ์ ์— ๋…ธ์ถœ

  • Popup : ์ƒˆ์ฐฝ. ์˜จ์ „ํ•œ ์ƒˆ๋กœ์šด ์›นํŽ˜์ด์ง€
  • Modal : ๋ ˆ์ด์–ด ํŒ์—….
  • Alert : ์•Œ๋ฆผ/์‹œ์Šคํ…œ ํŒ์—…. ์›๋ž˜ ๊ฒฝ๊ณ , ์•Œ๋ฆผ์ฐฝ์„ ๋งํ•˜์ง€๋งŒ ์‹ค๋ฌด์—์„œ๋Š” ๋ณดํ†ต ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋„์šฐ๋Š” ์‹œ์Šคํ…œ ํŒ์—…์„ ๋งํ•œ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ

1. ์ผ๋ฐ˜ ํŒ์—…

๋„ค์ด๋ฒ„ ๋‰ด์Šค ๊ธฐ์‚ฌ ํŽ˜์ด์ง€์—์„œ ์ธ์‡„ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์™„์ „ํ•˜๊ฒŒ ์ƒˆ๋กœ์šด ์ฐฝ์œผ๋กœ ํŒ์—…์ด ๋œจ๊ฒŒ ๋œ๋‹ค.
์ด๊ฒƒ๋„ ํ•˜๋‚˜์˜ ๋ธŒ๋ผ์šฐ์ €์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ณ , ์œ„์น˜๋„ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
์ƒ๋‹จ์˜ ํŽ˜์ด์ง€ ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ ํƒญ์—์„œ๋„ ์—ด ์ˆ˜ ์žˆ๋‹ค.
๋งŒ์•ฝ ๋ธŒ๋ผ์šฐ์ € ์„ค์ •์—์„œ ํŒ์—… ์ฐจ๋‹จํ•˜๋ฉด ํŒ์—…์€ ๋œจ์ง€ ์•Š์Œ

2. Alert ํŒ์—…(์‹œ์Šคํ…œ ํŒ์—…)

๊ฐ์ž ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ๊ณผ ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ์„œ ์ •ํ•ด์ง„ ๋””์ž์ธ์œผ๋กœ ๋œจ๋Š” ํŒ์—….
๋ณ„๋„๋กœ ๋งˆํฌ์—…์ด๋‚˜ ๋””์ž์ธ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.

3. ๋ ˆ์ด์–ด ํŒ์—…

์›๋ž˜ ์žˆ๋˜ ์ฝ˜ํ…์ธ ์— ๋ฐ˜ํˆฌ๋ช…ํ•œ ๋ฐฐ๊ฒฝ์œผ๋กœ ๊น”๋ฆฌ๊ณ  ๊ทธ ์œ„์— ํŒ์—…์ด ๋œฌ๋‹ค.
์ƒ๋‹จ์— ์ฃผ์†Œ์ฐฝ๋„ ์—†๊ณ  ์˜ฎ๊ธธ ์ˆ˜๋„ ์—†๋‹ค.
์ด ํŒ์—…์€ ์˜จ์ „ํ•˜๊ฒŒ ์ง€๊ธˆ ํ˜„์žฌ ์ด ๋ธŒ๋ผ์šฐ์ €์— ์†ํ•ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์˜ฎ๊ฒจ์•ผ์ง€๋งŒ ์˜ฎ๊ฒจ์ง„๋‹ค. ๋ ˆ์ด์–ดํŒ์—…์€ ์˜จ์ „ํžˆ ์ด ๋ธŒ๋ผ์šฐ์ €์— ์†ํ•ด์žˆ๋Š” ๋งˆํฌ์—… ์š”์†Œ์ผ๋ฟ.

์ด๋ ‡๊ฒŒ ๋งˆํฌ์—… ์š”์†Œ๋กœ ๋งŒ๋“  ํŒ์—…์„ Modal, ๋ ˆ์ด์–ด ํŒ์—…์ด๋ผ๊ณ  ํ•œ๋‹ค.

(Alert๋Š” ๋งˆํฌ์—…์ด ํ•„์š” ์—†์Œ.)

์ผ๋ฐ˜ ํŒ์—… vs ๋ ˆ์ด์–ด ํŒ์—…

  • ์ผ๋ฐ˜ ํŒ์—…
    • ์ƒˆ ์ฐฝ์œผ๋กœ ์—ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด html๊ณผ cssํŒŒ์ผ์ด ํ•„์š”
    • ํŒ์—… ํŽ˜์ด์ง€์˜ ๊ณ ์œ  ์ฃผ์†Œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— a ํƒœ๊ทธ๋กœ ๋งํฌ ๊ฑธ์–ด์„œ ์ง„์ž…ํ•˜๋Š” ๋ฐฉ์‹์ด ์ž์—ฐ์Šค๋Ÿฝ๋‹ค.
    • window(ํ™”๋ฉด ๋ชจ๋‹ˆํ„ฐ ์ž์ฒด) ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜๋ฅผ ์žก๋Š”๋‹ค.
      (window์•ˆ์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋œจ๊ณ , ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์„ viewport๋ผ๊ณ  ํ•œ๋‹ค.)
    • ๋ธŒ๋ผ์šฐ์ € ์˜ต์…˜์—์„œ ํŒ์—… ์ฐจ๋‹จ์œผ๋กœ ๋…ธ์ถœ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ ˆ์ด์–ด ํŒ์—…
    • ์ˆจ๊ฒจ์ ธ์žˆ๋˜ ๋งˆํฌ์—… ์š”์†Œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”๊ฒƒ
    • ํ˜„์žฌ ์›นํŽ˜์ด์ง€์™€ ๋™์ผํ•œ html๊ณผ cssํŒŒ์ผ ์‚ฌ์šฉ
    • ํ˜„์žฌ ํŽ˜์ด์ง€์˜ ์ผ๋ถ€ ์š”์†Œ๋ฅผ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณด์—ฌ์ฃผ๋Š”๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— button ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒ์—… ๋„์›€
    • ๋ธŒ๋ผ์šฐ์ € ๋‚ด์˜ ๋ทฐํฌํŠธ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ ์žก์Œ
    • ์Šคํฌ๋ฆฝํŠธ ๋กœ๋”ฉ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉด ๋…ธ์ถœ์ด ๋œ๋‹ค.

๋ ˆ์ด์–ด ํŒ์—…

๋””์ž์ธ์ ์ธ ํ†ต์ผ์„ฑ๊ณผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ์ด ๋  ํ™•๋ฅ ์ด ์ข€ ๋” ๋†’๋‹ค๋Š” ์žฅ์ ์œผ๋กœ ์š”์ฆ˜์—๋Š” ๋ ˆ์ด์–ด ํŒ์—…์„ ์ข€ ๋” ์„ ํ˜ธ

ํŠนํžˆ ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ์ƒˆ์ฐฝ์œผ๋กœ ๋„์šธ ๊ฒฝ์šฐ PC์— ๋น„ํ•ด์„œ ๋‹ค์‹œ ์›๋ž˜ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๊ธฐ ์กฐ๊ธˆ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ๊ทธ๋ž˜์„œ ๋ชจ๋ฐ”์ผ ์ฐฝ ์•ˆ์˜ ๋ธŒ๋ผ์šฐ์ € ์ „์ฒด๋ฅผ ๋’ค๋ฎ๋Š” ๋ ˆ์ด์–ดํŒ์—…์„ ์ข…์ข… ์‚ฌ์šฉํ•œ๋‹ค.

๋ ˆ์ด์–ด ํŒ์—…์€ ํŒ์—… ๋ฐ‘์œผ๋กœ ๋ฐ˜ํˆฌ๋ช…ํ•œ ๋”ค๋“œ ๋ฐฐ๊ฒฝ์„ ๊น”์•„์„œ ํŒ์—… ์™ธ์˜ ํ™”๋ฉด์˜ ํด๋ฆญ์„ ๋ง‰๋Š”๋‹ค. ์–ด๋–ค ํŽ˜์ด์ง€์—์„œ๋Š” ์Šคํฌ๋กค ์ž์ฒด๋ฅผ ๋ง‰๋Š”๊ฒƒ๋„ ์กด์žฌํ•œ๋‹ค.

๋Œ€๋ถ€๋ถ„ ๋ทฐํฌํŠธ ๋‚ด์—์„œ ์ค‘์•™์ •๋ ฌ์ด ๋˜๋„๋ก ์ฒ˜๋ฆฌํ•จ.

๋ ˆ์ด์–ด ํŒ์—… ์ค‘์•™์ •๋ ฌ ๋ฐฉ๋ฒ•

CSS ์†์„ฑ๋“ค ์กฐํ•ฉ

  • tet-align:center;
    ์ธ๋ผ์ธ ์š”์†Œ๋ฅผ ๊ฐ€๋กœ๊ธฐ์ค€์œผ๋กœ ์ค‘์•™์ •๋ ฌ
  • vertical-align:middle;
    ์ธ๋ผ์ธ ์š”์†Œ๋“ค์„ ์„ธ๋กœ ๊ธฐ์ค€์œผ๋กœ ์ค‘์•™์ •๋ ฌ
  • margin:auto;
    ๋ธ”๋ก ์š”์†Œ ์ค‘์•™์ •๋ ฌ
  • display:table | table-cell;
    table์•ˆ์˜ table-cell์•ˆ์˜ ์ฝ˜ํ…์ธ ๋“ค์€ vertical-align:middle;๋กœ ์ž๋™ ์ •๋ ฌ๋จ. ์ด ๊ธฐ๋ณธ์†์„ฑ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

1. ๋ ˆ์ด์–ดํŒ์—… + ๋”ค๋“œ ๋ฐฐ๊ฒฝ ์ œ์ž‘

ํ…์ŠคํŠธ ์˜์—ญ+ํ•˜๋‹จ์˜ ๋ฒ„ํŠผ ์˜์—ญ์œผ๋กœ ๊ตฌ์„ฑ

์Šคํƒ€์ผ ์ •๋ณด

  • ํŒ์—…์ฐฝ ๋„ˆ๋น„ : 300px
  • ํŒ์—…์ฐฝ ๋†’์ด : ์ตœ์†Œ 200px (๊ฐ€๋ณ€)
    ํ…์ŠคํŠธ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ์„ธ๋กœ๋กœ ๋Š˜์–ด๋‚˜๋„๋ก ๊ฐ€๋ณ€์ฒ˜๋ฆฌ
  • ํ…์ŠคํŠธ ์—ฌ๋ฐฑ : 50px 30px 30px
  • ๋ฒ„ํŠผ ๋†’์ด : 50px, ํ•˜๋‹จ ๊ณ ์ •
  • ๋”ค๋“œ ๋ฐฐ๊ฒฝ : #000, ํˆฌ๋ช…๋„ 30%

์ฃผ์š” ํƒœ๊ทธ ๋ฐ ์Šคํƒ€์ผ

  • 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;
}

2. ๋ ˆ์ด์–ดํŒ์—… ์ค‘์•™์ •๋ ฌ

์–ด๋–ค ์š”์†Œ๋ฅผ ํŠน์ • ๊ณต๊ฐ„ ์•ˆ์—์„œ ์ค‘์•™์ •๋ ฌํ•˜๋Š”๊ฑด ๋ ˆ์ด์–ด ํŒ์—…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋‹ˆ ์ค‘์š”

์Šคํƒ€์ผ ์ •๋ณด

  • ํŒ์—… ์œ„์น˜ : ๋ทฐํฌํŠธ ๊ธฐ์ค€ ์ค‘์•™ ์ •๋ ฌ
  • ํŒ์—… ์‚ฌ์ด์ฆˆ : ๊ณ ์ •/๊ฐ€๋ณ€
    ํŒ์—…์‚ฌ์ด์ฆˆ๊ฐ€ ๊ณ ์ •/๊ฐ€๋ณ€์ธ์ง€์— ๋”ฐ๋ผ ์ค‘์•™์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ฌ๋ผ์ง„๋‹ค.

์ฃผ์š” ํƒœ๊ทธ ๋ฐ ์†์„ฑ

  • HTML
    div
  • CSS
    position, margin, display, vertical-align, text-align, :after

1๋ฒˆ ์ฝ”๋“œ์—์„œ ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

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๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ

    • ์ƒํ•˜ margin
    • inline, inline-block, float ์š”์†Œ, ํ˜น์€ absolute, fixed๋กœ ์œ„์น˜๊ฐ€ ๊ณ ์ •๋œ ์š”์†Œ์˜ ๋ชจ๋“  margin -> margin์ด 0px๋กœ ์ฒ˜๋ฆฌ๋จ
  • auto๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ

    • width, ๊ฐ€๋กœ๊ฐ’์ด ์žˆ๋Š” ์š”์†Œ์˜ ์ขŒ์šฐ margin์— ์ ์šฉ
      == marign:0 auto;
      (์ƒํ•˜ margin์€ 0px๋กœ ์ฒ˜๋ฆฌ๋จ)
    • absolute์˜ 1) top+bottom+height ํ˜น์€ 2) left+right+width๊ฐ’์ด ํ•จ๊ป˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ๋ชจ๋“  margin
      1) -> ์ „์ฒดํ™”๋ฉด์—์„œ ์ƒํ•˜๋กœ ์ค‘์•™์ •๋ ฌ
      2) -> ์ „์ฒดํ™”๋ฉด์—์„œ ๊ฐ€๋กœ๋กœ ์ค‘์•™์ •๋ ฌ

2. ํŒ์—… ์‚ฌ์ด์ฆˆ ๊ฐ€๋ณ€์ธ ๊ฒฝ์šฐ

1) display: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;
}

2) 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;
      ๋งŽ์€ ์ฝ”๋“œ ์ค‘์ฒฉ ํ•„์š”

0๊ฐœ์˜ ๋Œ“๊ธ€