ํญ : ์ฌ์ ์ ์๋ฏธ๋ก ์์ธํ, ์๋ณํ๋ผ๋ ๋ป
์์ธ์ ๋ชฉ๋ก๊ณผ ๊ฐ์ ์๋ฏธ๋ก ์ฐ์ธ๋ค
๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ ๊ฒฝ์ฐ ๊ทธ ๋ฐ์ดํฐ์ ์ด๋ฆ, ํฌ๊ธฐ ๋ฑ์ ์์ฑ๊ณผ ๊ทธ ๊ธฐ๋ก ์ฅ์๋ฑ์ ํ์ํ๋๊ฒ
์ฆ ์ฐธ์กฐ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์์ธํ ๋๋ ์ธ๋ฑ์ค๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
์ฌ๋ฌ ๋ฌธ์ ๋๋ ํจ๋์ ํ๋์ ์ฐฝ์ ๋๊ณ ์ ํํ์ฌ ๋ณผ ์ ์๋๋ก ํ ์ธํฐํ์ด์ค.
= ๊ฐ์ ํ์ด์ง ๋ด์์ ํญ ๋ฉ๋ด์ ๊ทธ์ ์ฐ๊ด๋ ๋ด์ฉ์ ํ์ ๋ ์์ญ์์ ๊ทธ์ ํด๋น๋๋ ์ฝํ
์ธ ๋ด์ฉ๋ค์ ํ์ ๋ ์์ญ์์ ๋ชจ๋ ์ ๊ณต์ ํ ์ ์๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ UI
ํญ๊ณผ ๋ด๋น๊ฒ์ด์ ์ UI๊ฐ ์ ์ฌํ์ฌ ์ฌ์ฉ์ ๊ธฐ๋ฅ์ ํท๊ฐ๋ฆด ์์๋ค.
์ฌ์ฉ์๊ฐ ํญ ๋๋ ๋ด๋น๊ฒ์ด์ ์ ํด๋ฆญํ์๋
๋ค์ด๋ฒ ๋ด์ค ์ฌ์ดํธ -> ๊ฐ์ฅ ๋ง์ด ๋ณธ ๋ด์ค
๋ค์ด๋ฒ ๋งํ ์ฌ์ดํธ -> ์ธ๊ธฐ ๊ธ์์น ๋งํ, 20๋ ์ค์๊ฐ ์ธ๊ธฐ ๋งํ
๋ค์ด๋ฒ ํธํ
ํ์ด์ง
ํญ์ ํ์ด์ง ์ด๋์์ด ๊ฐ์ ํ๋ฉด ๋ด์์ ์ฝํ ์ธ ๋ฅผ ํ์ธํ ์ ์๋ ์ฅ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋ค๋น๊ฒ์ด์ ๊ณผ ํญ ๋ UI์ ๋ํ ์ฐจ์ด๋ฅผ ๊ตฌ๋ถํด์ ์ดํดํ์
ํญ์ ๋ค์ํ ์น ์ฌ์ดํธ์์ ์์ฃผ ์ฌ์ฉ๋๊ณ ์๋ UI์ด๋ค.
ํญ์ ํญ ๋ชฉ๋ก๊ณผ ํจ๋ ์์ญ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
ํญ ๋ชฉ๋ก
๋์ด 50px
ํฐํธ 16px #999
๋ผ์ธ 1px #eee
์ค๋ฒ/ํ์ฑํ ์ ํฐํธ 16px bold #000
ํญ ํจ๋
๋์ด ์ต์ 350px
๋ผ์ธ 1px #eee
์ฝํ
์ธ ํฐํธ 14px #333 1์ค ๋ง์ค์
์ฝํ
์ธ ์ค๋ฒ ์ ํฐํธ 14px bold
HTML
div, ul, li, a, span
CSS
display, position, border, margin, padding, table-layout, box-sizing, text-align, :hover
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="tab.css">
<title>ํญ ์ค์ต</title>
</head>
<body>
<!--tab UI๋ฅผ ๊ฐ์ธ๋ ์ต์์ ๋ถ๋ชจ-->
<div class="tab_wrap">
<!-- ํญ ๋ชฉ๋ก -->
<ul class="tab">
<!-- ํญ ๋ชฉ๋ก ํ์ฑํ ํด๋์ค active ์ถ๊ฐ -->
<li class="tab_item active">
<button type="button" class="tab_btn">์ธ๊ธฐ์</button>
</li>
<li class="tab_item">
<button type="button" class="tab_btn">์กฐํ์</button>
</li>
<li class="tab_item">
<button type="button" class="tab_btn">๋ ์ง์</button>
</li>
</ul>
<!-- ์ธ๊ธฐ์ ํญ ํจ๋ wrap -->
<!-- ํญ ํจ๋ ํ์ฑํ ํด๋์ค active ์ถ๊ฐ -->
<div class="tab_panel_wrap active">
<h3>์ธ๊ธฐ์ ์ฝํ
์ธ </h3>
<!-- ํญ ํจ๋ -->
<ol class="tab_panel">
<li class="panel_item"><a href="#" class="item_link">1. ์์ธ~๋ฐ๋ 30๋ถ ๋ง์ ๋์ฐฉโฆ์ฅ๊ฑฐ๋ฆฌ ๋ก์ผ ์ฌํ, 2030๋
๋ด ๊ฐ๋ฅ</a></li>
<li class="panel_item"><a href="#" class="item_link">2. ์ฌ๋งํด์ ์ ์ฃฝ๋๋ค๋ '๋ฌผ๊ณฐ'์๊ฒ์ ๊ทนํ์์กด ์ด์ ์ฐพ๋๋ค</a></li>
<li class="panel_item"><a href="#" class="item_link">3. ์ ํ, '์์ดํ 2์ธ๋' ๋ฐํ</a></li>
<li class="panel_item"><a href="#" class="item_link">4. ํ๊ตญ์ด ์ง์ํ๋ ๋ฏธ์น์ธ ์ฑ์ธ๊ฒ์๋ฌผ ๋ฒ๋</a></li>
<li class="panel_item"><a href="#" class="item_link">5. [์ด์+] "ํ์ ์๋ ๊ฐ๊ฒฉ์ธ์"โฆ์์ดํ2, ์ ํ ์ถฉ์ฑ๊ณ ๊ฐ๋ง์ ๋ ๋๋ค</a></li>
<li class="panel_item"><a href="#" class="item_link">6. KAIST, ์ธํ ๊ฐ๋ฅํ ์
๋ ๋์คํ๋ ์ด ๊ฐ๋ฐ</a></li>
<li class="panel_item"><a href="#" class="item_link">7. "์ธ๊ณ ์ต์ด 5G ์์ฉํ"โฆ์ผ์ฑ '๊ฐค๋ญ์S10 5G' ๋ค์๋ฌ 5์ผ ์ถ์</a></li>
<li class="panel_item"><a href="#" class="item_link">8. ์ค๊ตญ์
์ฒด, ๊ตญ์ฐ ๋ฐฐํฐ๋ฆฌ ํ์ฌ ์ ๊ธฐ์ฐจ 5๋ ํ์์น์ธ ์ ์ฒญ</a></li>
<li class="panel_item"><a href="#" class="item_link">9. ็พ ๋ง์ดํฌ๋ก '์ด๋ก์ ' D๋จยท๋ธ๋ ๊ฐ์ฐโฆ๋ฉ๋ชจ๋ฆฌ ์
ํฉ ํ๋ณต ๊ธฐ๋</a></li>
<li class="panel_item"><a href="#" class="item_link">10. ์ํ์ด ์์ฌ์ ๊ฑด๊ฐ๋น๊ฒฐ์ โ๋งค์ผ 15๋ถ ๋งจ์ ์ด๋โ</a></li>
</ol>
</div>
<!-- ์กฐํ์ ํญ ํจ๋ wrap -->
<div class="tab_panel_wrap">
<h3>์กฐํ์ ์ฝํ
์ธ </h3>
<!-- ํญ ํจ๋ -->
<ol class="tab_panel">
<li class="panel_item"><a href="#" class="item_link">1. ์์ธ~๋ฐ๋ 30๋ถ ๋ง์ ๋์ฐฉโฆ์ฅ๊ฑฐ๋ฆฌ ๋ก์ผ ์ฌํ, 2030๋
๋ด ๊ฐ๋ฅ</a></li>
<li class="panel_item"><a href="#" class="item_link">2. ์ฌ๋งํด์ ์ ์ฃฝ๋๋ค๋ '๋ฌผ๊ณฐ'์๊ฒ์ ๊ทนํ์์กด ์ด์ ์ฐพ๋๋ค</a></li>
<li class="panel_item"><a href="#" class="item_link">3. ์ ํ, '์์ดํ 2์ธ๋' ๋ฐํ</a></li>
<li class="panel_item"><a href="#" class="item_link">4. ํ๊ตญ์ด ์ง์ํ๋ ๋ฏธ์น์ธ ์ฑ์ธ๊ฒ์๋ฌผ ๋ฒ๋</a></li>
<li class="panel_item"><a href="#" class="item_link">5. [์ด์+] "ํ์ ์๋ ๊ฐ๊ฒฉ์ธ์"โฆ์์ดํ2, ์ ํ ์ถฉ์ฑ๊ณ ๊ฐ๋ง์ ๋ ๋๋ค</a></li>
</ol>
</div>
<!-- ๋ ์ง์ ํญ ํจ๋ wrap -->
<div class="tab_panel_wrap">
<h3>๋ ์ง์ ์ฝํ
์ธ </h3>
<!-- ํญ ํจ๋ -->
<ol class="tab_panel">
<li class="panel_item"><a href="#" class="item_link">1. ์์ธ~๋ฐ๋ 30๋ถ ๋ง์ ๋์ฐฉโฆ์ฅ๊ฑฐ๋ฆฌ ๋ก์ผ ์ฌํ, 2030๋
๋ด ๊ฐ๋ฅ</a></li>
<li class="panel_item"><a href="#" class="item_link">2. ์ฌ๋งํด์ ์ ์ฃฝ๋๋ค๋ '๋ฌผ๊ณฐ'์๊ฒ์ ๊ทนํ์์กด ์ด์ ์ฐพ๋๋ค</a></li>
<li class="panel_item"><a href="#" class="item_link">3. ์ ํ, '์์ดํ 2์ธ๋' ๋ฐํ</a></li>
<li class="panel_item"><a href="#" class="item_link">4. ํ๊ตญ์ด ์ง์ํ๋ ๋ฏธ์น์ธ ์ฑ์ธ๊ฒ์๋ฌผ ๋ฒ๋</a></li>
<li class="panel_item"><a href="#" class="item_link">5. [์ด์+] "ํ์ ์๋ ๊ฐ๊ฒฉ์ธ์"โฆ์์ดํ2, ์ ํ ์ถฉ์ฑ๊ณ ๊ฐ๋ง์ ๋ ๋๋ค</a></li>
<li class="panel_item"><a href="#" class="item_link">6. KAIST, ์ธํ ๊ฐ๋ฅํ ์
๋ ๋์คํ๋ ์ด ๊ฐ๋ฐ</a></li>
<li class="panel_item"><a href="#" class="item_link">7. "์ธ๊ณ ์ต์ด 5G ์์ฉํ"โฆ์ผ์ฑ '๊ฐค๋ญ์S10 5G' ๋ค์๋ฌ 5์ผ ์ถ์</a></li>
<li class="panel_item"><a href="#" class="item_link">8. ์ค๊ตญ์
์ฒด, ๊ตญ์ฐ ๋ฐฐํฐ๋ฆฌ ํ์ฌ ์ ๊ธฐ์ฐจ 5๋ ํ์์น์ธ ์ ์ฒญ</a></li> </ol>
</div>
</div>
</body>
</html>
๋ค๋น๊ฒ์ด์ ์ ๋ง์ฐ์ค ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ต์ปค๋ก ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด์ ์์ ํ๋ค๋ฉด ํญ์ ๋ฒํผ ๊ตฌ์กฐ ์ด์ฉ.
์ต์ปค๋ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด์ ํ๋ ์๋งจํฑ์ ์ธ ๋งํฌ์ ๊ตฌ์กฐ์ด๊ณ , ํ์ฌ๋ ๊ฐ์ ํ์ด์ง ๋ด์์ ์ฝํ ์ธ ๋ฅผ ํ์ธํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํญ์์๋ ๋ฒํผ์ ์ฐ๋๊ฒ ์๋งจํฑ ๋งํฌ์ ๊ตฌ์กฐ์์ ๋ ์ ํฉํ๋ค.
ํญ ํจ๋์ ํ์ดํ(h3)์ ๊ฒฐ๊ณผ๋ฌผ์์๋ ๋
ธ์ถ๋์ง ์๋ ํ์ดํ.
์จ์ฃผ๋ ์ด์ ๋ ์ ๊ทผ์ฑ ์ธก๋ฉด์์ ํญ ๋ชฉ๋ก๊ณผ ํญ ํจ๋์ด ์ฐ๊ฒฐ๋์๋ค๋ ์๋ฏธ๋ก ํ์ดํ์ ํญ ํจ๋์์ ๋ฃ์ด์ฃผ๊ฒ ๋๋ค. ์๋ฃ์ด์ค๋ ๊ฒฐ๊ณผ๋ฌผ์์๋ ํฐ ์ํฅ์ ์ฃผ์ง ์์ง๋ง ์ข ๋ ์๋งจํฑํ ๋งํฌ์
๊ตฌ์กฐ์์๋ ํ์ดํ์ ๋ฃ๋๊ฒ์ด ๋ ์ข์ ์ฝ๋ ๋ฐฉ๋ฒ.
๋ํ ๋ณดํต ํญ ์์ญ๊ฐ์ ๊ฒฝ์ฐ๋ ์ฝํ
์ธ ๋ด๋ถ๋ aside ์์ญ์ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์, ๋ณดํต h1์ด๋ h2๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ์ด์ h3๋ก ํ์ดํ์ ๋ฃ์ด์ค๊ฒ.
@charset "UTF-8";
/* ๊ธฐ๋ณธ ์คํ์ผ */
body {
font-family: '๋๋๊ณ ๋', NanumGothic, Dotum, '๋์', sans-serif;
font-size: 14px;
line-height: 16px;
}
body, ul, ol, li, div, a, button {
margin:0;
padding:0;
}
ul, ol {
list-style:none;
}
a {
color: inherit;
text-decoration: none;
}
/* ํญ ์ ์ */
.tab_wrap {
width: 300px; /*์ ์ฒด ํญ UI์ ๋๋น๋ฅผ 300px๋ก ๊ณ ์ */
margin: 20px auto 0; /*๊ฐ์ด๋ฐ ์ ๋ ฌ*/
}
.tab:after { /*float ํด์ */
display: block;
content: '';
clear: both;
/*๋ถ๋ชจ๊ฐ ์์์ ๋์ด๊ฐ์ ์ธ์งํ ์ ์๊ฒ ๋ง๋ฆ*/
}
.tab_item {
float: left; /*๋ฒํผ์ด ํ๋จ์ผ๋ก ๋จ์ด์ง๋ ํ์ ํด๊ฒฐ*/
/*float ์ ์ธ -> ๋ฐ๋์ ํด์ ํ๋ ์ต๊ด ๋ค์ด๊ธฐ*/
}
.tab_btn {
width: 100px;
height: 50px;
font-size: 16px;
color: #999;
background-color: transparent; /*๊ธฐ๋ณธ ๋ฒํผ ์คํ์ผ ์ด๊ธฐํ*/
border: 1px solid #eee;
outline: 0; /*๊ธฐ๋ณธ ๋ฒํผ ์คํ์ผ ์ด๊ธฐํ*/
cursor: pointer; /*๋ง์ฐ์ค ์ค๋ฒ ์ ์๊ฐ๋ฝ ๋ชจ์*/
/*์๋ border์ ๊ฐ์ด ๋๋น์ ๋์ด์ ์ํฅ์ ๋ฏธ์น๋๋ฐ, button์ ๊ธฐ๋ณธ์ ์ธ ์คํ์ผ์ box-sizing:border-box๊ฐ ์ ์ธ์ด ๋์ด์์ผ๋ฏ๋ก border๋ฅผ ์ถ๊ฐํด๋ ์ ์ฒด ๋๋น์ ๋์ด๊ฐ ๋ณํ์ง ์๋๋ค.*/
}
.tab_item + .tab_item .tab_btn {
width: 101px; /*์ผ์ชฝ์ผ๋ก 1px์ฉ ์ด๋ -> ์ฐ์ธก์ ์ฌ๋ฐฑ 2px ๋น์ด๋ณด์ด๋ ๋ฌธ์ ํด๊ฒฐ*/
margin-left: -1px; /*border ๊ฒน์นจ ํ์ ํด๊ฒฐ*/
}
/* ํญ ๋ชฉ๋ก ์ค๋ฒ ์, ํ์ฑํ ์ ํจ๊ณผ */
.tab_item .tab_btn:hover,
.tab_item.active .tab_btn {
font-weight: bold;
color: #000;
border-bottom: 0; /* ํ๋จ ๋ผ์ธ ๊ฐ์ถ๊ธฐ */
}
.tab_panel_wrap {
display: none; /* ํญ ํจ๋์ ๊ธฐ๋ณธ ๋น๋
ธ์ถ ์ฒ๋ฆฌ */
}
.tab_panel_wrap.active {
display: block; /* ํ์ฑํ ์ ํญ ํจ๋ ๋
ธ์ถ ์ฒ๋ฆฌ */
}
.tab_panel_wrap {
min-height: 350px; /*๋ฆฌ์คํธ์ ๊ฐฏ์๊ฐ ๋ชจ์๋๋ ๋ฐ์ค๊ฐ ์ค์ด๋๋ ํ์์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ์ด์ฝ๋ ์ธก๋ฉด*/
padding: 20px;
border: 1px solid #eee;
border-top: 0; /* ์๋จ ๋ผ์ธ ๊ฐ์ถ๊ธฐ. border ๊ฒน์นจ ํ์ ํด๊ฒฐ */
box-sizing: border-box; /* ๋์ด์ border, padding ํฌํจํ์ง ์๊ธฐ ์ํด*/
}
.tab_panel_wrap h3 {
/* ์์ ๊ฐ์ถ๊ธฐ ์์ฑ์ blind ํด๋์ค๋ก ๋์ฒด ๊ฐ๋ฅ(HTML&CSS ํ์ฉ>IR๊ธฐ๋ฒ ๊ฐ์ข ์ฐธ๊ณ ) */
position: absolute;
z-index: -1;
color: transparent;
}
.item_link {
display: block; /*item_link๋ฅผ ๊ฐ์ธ๊ณ ์๋ li ์์ญ์ ๊ฝ ์ฐจ๊ฒ๋ ์ก๊ธฐ ์ํด*/
font-size: 14px;
line-height: 30px;
color: #333;
/*๋ง์ค์ ์ฒ๋ฆฌ*/
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.panel_item:hover .item_link {
font-weight: bold;
}
ํ์ค ๋ง์ค์ ์ฒ๋ฆฌ๋ overflow:hidden, white-space:nowrap, text-overflow:ellipsis, display:block
๊ผญ ๋ค์ด๊ฐ์ผํจ
์ค๋ฌด์์๋ activeํด๋์ค๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ ์ดํจ
ํ ์คํธ ๋ง์ค์์ ๊ณต์์ฒ๋ผ ์ฌ์ฉ๋๋ฏ๋ก 3๊ฐ์ง ๋ถ๋ถ ๋ชจ๋ ์ธ์ฐ๊ธฐ