HTML์์ ํ ์ด๋ธ์ ํ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
ํ๋ ์ด๋ค ๋ด์ฉ์ ์ผ์ ํ ํ์๊ณผ ์์์ ๋ฐ๋ผ ๋ณด๊ธฐ ์ฝ๊ฒ ๋ํ๋ธ๊ฒ.
ํ ์์ ์ ๋ชฉ๊ณผ ๋ด์ฉ์ผ๋ก ๊ตฌ์ฑํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋งํฌ์ ํ๊ทธ๋ค๋ณด๋ค ์ฌ์ฉ๋ฐฉ๋ฒ์ด ์ข ๋ ๋ณต์ก
ํ ํํ์ UI์ด๋๋ผ๋ ๋ค๋ฅธ ํ๊ทธ๋ก ์๋ฏธ์๋ ๋งํฌ์ ์ ํ ์ ์๋ค๋ฉด ๊ผญ ํ ์ด๋ธ ํ๊ทธ ์ฌ์ฉํ์ง ์์๋ ๋๋ค.
๋ค์ด๋ฒ ์คํฌ์ธ : ๊ธฐ๋ก ์์
๋ค์ด๋ฒ ํฌ์คํธ: ํต๊ณ, ๋ฌ๋ ฅ
ํ ์ด๋ธ != ์ผ๋ฐ ๋ธ๋ญ ์์
scope
์ ๋ชฉ ์ ์ธ ๋ชจ๋ th์ ์ถ๊ฐ
th scope="col, row, colgroup, rowgroup"
๋ชจ๋ <th>
๋ ๋ฐ๋์ scope๋ผ๋ ์์ฑ์ ์ถ๊ฐํด์ <td>
์ ๋ด์ฉ์ด ์ด๋ค <th>
์ ๊ด๋ จ๋ ๊ฒ์ธ์ง ๋ฆฌ๋๊ธฐ๊ฐ ์ ๋๋ก ์ฝ์ด์ค ์ ์๋๋ก ์ ๊ทผ์ฑ์ ์ง์ผ์ฃผ์ด์ผ ํ๋ค.
scope์ ๊ฐ์ผ๋ก๋ 4๊ฐ์ง ์ฌ ์ ์๋ค.
<thead>
์ ์๋ <th>
๋ ๋ชจ๋ scope=col<table>
<col>
<colgroup span="2"></colgroup>
<colgroup span="2"></colgroup>
<tr>
<td rowspan="2"></td>
<th colspan="2" scope="colgroup">Mars</th>
<th colspan="2" scope="colgroup">Venus</th>
</tr>
<tr>
<th scope="col">Produced</th>
<th scope="col">Sold</th>
<th scope="col">Produced</th>
<th scope="col">Sold</th>
</tr>
<tr>
<th scope="row">Teddy Bears</th>
<td>50,000</td>
<td>30,000</td>
<td>100,000</td>
<td>80,000</td>
</tr>
<tr>
<th scope="row">Board Games</th>
<td>10,000</td>
<td>5,000</td>
<td>12,000</td>
<td>9,000</td>
</tr>
id, headers
th id=""
/td headers=""
๋ณต์กํ ํ์์ ์ฌ์ฉ
๋ชจ๋ th์ id ์ถ๊ฐ, ๊ฐ th์ ํด๋นํ๋ ์
์ headers๋ฅผ ์ถ๊ฐํด์ ๊ทธ ๊ฐ์ผ๋ก id๊ฐ์ ๋์ด
์ฆ th์ td๋ฅผ ์ง์ ์ฐ๊ฒฐํ๋ ๋ฐฉ์
๋ฆฌ๋๊ธฐ๋ ์ ์ด์ค ์์๋๋ก headrs๋ฅผ ์ฝ์
๋ณต์กํด์ ์ค๋ฅ๊ฐ ๋๊ธฐ ์ฌ์
๋๋ถ๋ถ scope๋ง์ผ๋ก ์ ๊ทผ์ฑ์ ์ถฉ๋ถํ ์งํฌ ์ ์๋ค.
<table>
<caption>
Availability of holiday accommodation
</caption>
<thead>
<tr>
<td></td>
<th id="stud" scope="col">Studio</th>
<th id="apt" scope="col">Apt</th>
<th id="chal" scope="col">Chalet</th>
<th id="villa" scope="col">Villa</th>
</tr>
</thead>
<tbody>
<tr>
<th id="par" colspan="5" scope="colgroup">Paris</th>
</tr>
<tr>
<th headers="par" id="pbed1">1 bedroom</th>
<td headers="par pbed1 stud">11</td>
<td headers="par pbed1 apt">20</td>
<td headers="par pbed1 chal">25</td>
<td headers="par pbed1 villa">23</td>
</tr>
</tbody>
</table>
table ์์ ๋ด์์ CSS position ์์ฑ์ ์ฌ์ฉํ ๋ ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ด๋ป๊ฒ ๋ ๋๋ง ๋๋์ง ์ดํด๋ณด์
<div class="wrap">
<table class="td_relative">
<caption>td์ relative</caption>
<tr>
<td class="relative_section">
<div class="absolute_section"></div>
</td>
</tr>
</table>
</div>
<div class="wrap">
<table class="tr_relative">
<caption>tr์ relative</caption>
<tr class="relative_section">
<td>
<div class="absolute_section"></div>
</td>
</tr>
</table>
</div>
<div class="wrap">
<table class="table_relative relative_section">
<caption>table์ relative</caption>
<tr>
<td>
<div class="absolute_section"></div>
</td>
</tr>
</table>
</div>
<div class="wrap div_relative">
<table>
<caption>div์ relative</caption>
<tr>
<td>
<div class="relative_section">
<div class="absolute_section"></div>
</div>
</td>
</tr>
</table>
table {
border: 1px solid #000;
table-layout: fixed;
width: 100%;
height: 150px;
border-collapse: collapse;
}
.td_relative {
border-color: red;
}
.tr_relative {
border-color: blue;
}
.table_relative {
border-color: green;
}
.wrap {
margin: 50px;
}
.relative_section {
position: relative;
}
.absolute_section {
position: absolute;
width: 30px;
height: 30px;
left: 0;
top: 0;
background-color: #000;
}
.td_relative .absolute_section {
background-color: red;
}
.tr_relative .absolute_section {
background-color: blue;
}
.table_relative .absolute_section {
background-color: green;
}
.div_relative .relative_section {
width: 100%;
height: 100%;
}
๊ฒฐ๊ณผ
๋ฐ์ค์ ์์น๊ฐ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ชจ๋ ๋ค๋ฅด๊ฒ ๋ ๋๋ง๋จ
-> ํ
์ด๋ธ์ ๋ธ๋ผ์ฐ์ ๊ฐ ํด์ํ๋ ๋ฐฉ๋ฒ์ด ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ํ์
td์ ์ง์ relative๋ฅผ ์คฌ์๋ ๊ฐ์ฅ ์ ์์ ์ผ๋ก ๋ ธ์ถ. ์์ ์์๋ค์ด ์ด๋ป๊ฒ ์ค๋์ ๋ฐ๋ผ์ ๋ณต์ก๋์ ๋ฐ๋ผ ์์์น ๋ชปํ ๋ฒ๊ทธ ๋ฐ์ ๊ฐ๋ฅ
๋ด๋ถ div์ relative๋ฅผ ์คฌ์๋ IE ํ์๋ฒ์ ๊ณผ ํ์ด์ดํญ์ค์์ ์ค์์ ์์นํ๋๊ฑด ์ ๊ณผ ์ ์์ ๋์ด๊ฐ๊ณผ ์ปจํ ์ธ ๊ฐ ์๊ธฐ ๋๋ฌธ. ๊ทธ๋์ ์ ๊ณผ div ๋์ด๊ฐ์ 0px๋ก ์ฒ๋ฆฌํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ค์์ ์์น. ๊ทธ๋์ div์์ ์์๋ค์ด ๋ง์ด ๋ค์ด๊ฐ๋ค๋ฉด ์ ์์ ์ผ๋ก ๋์ด๊ฐ์ ์ก๊ธฐ ๋๋ฌธ์ ๋ ๋๋ง ์ ๋จ
๋ฐ๋ผ์ ํ
์ด๋ธ์ ๊ฐ ์์๋ฅผ ๋ฐฐ์นํ๋ ํ๋ก ๋ณด๊ณ td๋ th์ ์
์์ inner DIV๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ position ์์๋ ๊ทธ ๋ฐ์ ๊พธ๋ฏธ๋ ์์๋ค์ ๋ชจ๋ ์ด ๋ด๋ถ div์ ์ง์ ์ ์ธํ๋๊ฒ์ด ์ข๋ค.
table์ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง์ ํนํ ์ ๊ฒฝ์ ์จ์ผํ๋ ์ฃผ์
ํ ์ด๋ธ์ border๊ฐ ์ ์ฉ๋๋ ๋ฐฉ์
border-collapse:separate;
(default)
๋ชจ๋ ํ
์ด๋ธ ์์์ border๊ฐ ์ด์์์
๋ ๋๋ง
: thead->tfoot->tbody์์ผ๋ก ๋ผ์ธ์ด ๊ทธ๋ ค์ง๊ณ ์ฝํ
์ธ ๊ฐ ์ฑ์์ง
border-collapse:collapse;
border ๋ณํฉ
์ฐ์ธก ํ๋จ๋ถํฐ ์ข์ธก ์๋จ์ผ๋ก ๋ ๋๋ง
ํ
์ด๋ธ ์์๋ ๋ ์ด์ด๋ก ์์ด๊ธฐ ๋๋ฌธ์ z-index ์ฐจ์ด๊ฐ ์๋ค.
table ์์๊ฐ ๊ฐ์ฅ ๋จผ์ ๊ทธ๋ ค์ง๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์
๋ค์ ๊ฐ๋ ค์ ธ์ ๋ณด์ด์ง ์๋๊ฒ
columns, column groups : colgroup, col๋ฅผ ์๋ฏธ
์ฌ๊ธฐ์ CSS๋ก border๋ฅผ ๋ฃ์ ์ ์๋๋ฐ ๋น๊ต์ ๋ค๋ฅธ ์
๋ค์ ๋นํด z-index๊ฐ ๋ฎ์์ ๊ฐ๋ ค์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ์ ์ฌ์ฉํ์ง ์์
z-index ์์
table<col<tbody<thead<tr<td<th
๋ค์ด๋ฒ ํฌ์คํธ ์๋น์ค์ ํต๊ณํ ์ ์
<table>
<caption>์ฑ๋ณ, ์ฐ๋ น๋ณ ๋ถํฌ ๋ชฉ๋ก</caption>
<colgroup>
<!--span : col ๋ณํฉ-->
<col span="2" class="col">
<col span="2">
</colgroup>
<thead>
<tr>
<th scope="col">์ฐ๋ น๋ณ</th>
<th scope="col">์ฑ๋ณ</th>
<th scope="col" class="th_view">์กฐํ์</th>
<th scope="col" class="th_rate">๋น์จ</th>
</tr>
</thead>
<tbody>
<tr>
<th rowspan="2" scope="rowgroup">์ ์ฒด</th>
<th scope="row" class="th_male">๋จ</th>
<td>0</td>
<td>0.0%</td>
</tr>
<tr>
<th scope="row" class="th_female">์ฌ</th>
<td>0</td>
<td>0.0%</td>
</tr>
<tr>
<th rowspan="2" scope="rowgroup">0-12</th>
<th scope="row" class="th_male">๋จ</th>
<td>0</td>
<td>0.0%</td>
</tr>
<tr>
<th scope="row" class="th_female">์ฌ</th>
<td>0</td>
<td>0.0%</td>
</tr>
</tbody>
</table>
table, td, th {
border-collapse: collapse;
}
table {
width: 500px; /*์ ์ฒด๊ฐ 500px์ด ๋๊ณ ๊ฐ ์
์ ๋๋น๋ ๋ด์ฉ์ ๊ธธ์ด์ ๋ฐ๋ผ์ ์๋ ๋ถ๋ฐฐ๋จ*/
table-layout: fixed; /*์
์ ํฌ๊ธฐ๋ฅผ ๋์ผํ๊ฒ ๋ง์ถค*/
font-size: 13px;
}
.col {
width: 90px;
}
th {
font-weight: normal; /*์ด๊ธฐํ*/
}
th, td {
border-bottom: 1px solid #e1e1e1;
}
thead th {
padding: 5px 0;
border-bottom: 2px solid #000;
}
tbody td {
height: 40px;
}
.th_view,
.th_rate,
tbody td {
text-align: right;
}
.th_male,
.th_female {
background: #f8f8f8;
}
table-fixed
์์ฑ
: ๋์ ๋ณด์ด๋ ํจ๊ณผ ๋๋ฌธ์ด ์๋๋ผ ์ฑ๋ฅ ๋๋ฌธ์ ๋ฐ๋์ ํ์ํ ์์ฑ
<table>
ํ๊ทธ ๋ฟ๋ง ์๋๋ผ display:table
์์๋ table-layout:fixed
๋ฅผ ์ฐ๊ณ ์์ฐ๊ณ ์ ๋ฐ๋ผ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๊ต์ฅํ ๋ง์ด ๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ์ถ๊ฐํ๊ธฐ
col์ ์ฌ์ฉํ ์ ์๋ ์คํ์ผ
width/background/border
ํ ์ด๋ธ ํ๊ทธ๋ก ๋ง๋ค์ด์ผ ํ๋ ๋ํ์ ์ธ UI์ธ ๋ฌ๋ ฅ
<td>
์์ <div>
๋ฅผ ์ถ๊ฐํด์ ์คํ์ผ์ ๊พธ๋ฉฐ์ฃผ๋๊ฒ ์์
=inner <div>
์? ๋ธ๋ผ์ฐ์ ๋ง๋ค ํ
์ด๋ธ์ ๋ ๋๋ง ํ๋ ๋ฐฉ์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ
์
์์ ์์๋ค์ด ๋ง์ผ๋ฏ๋ก inner๋ผ๋ ํด๋์ค์ <div>
๋ฅผ ํ๋ ์ถ๊ฐ
<table>
<caption>๋ฌ๋ ฅ</caption>
<thead>
<tr>
<th scope="col">์ผ</th>
<th scope="col">์</th>
<th scope="col">ํ</th>
<th scope="col">์</th>
<th scope="col">๋ชฉ</th>
<th scope="col">๊ธ</th>
<th scope="col">ํ </th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="inner">
<span class="date dimmed">30</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">1</span>
<em class="text anniversary">๊ตญ๊ตฐ์ ๋ ๊ตญ๊ตฐ์ ๋ ๊ตญ๊ตฐ์ ๋ ๊ตญ๊ตฐ์ ๋ </em>
</div>
</td>
<td>
<div class="inner">
<span class="date">2</span>
</div>
</td>
<td>
<div class="inner">
<span class="date holiday">3</span>
<em class="text holiday">๊ฐ์ฒ์ </em>
</div>
</td>
<td>
<div class="inner">
<span class="date">4</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">5</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">6</span>
</div>
</td>
</tr>
<tr>
<td>
<div class="inner">
<span class="date holiday">7</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">8</span>
</div>
</td>
<td>
<div class="inner">
<span class="date holiday">9</span>
<em class="text holiday">ํ๊ธ๋ </em>
<span class="lunar">์ 9.1
</span></div>
</td>
<td class="today">
<div class="inner">
<span class="date">10</span>
<strong class="blind">์ค๋</strong>
</div>
</td>
<td>
<div class="inner">
<span class="date">11</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">12</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">13</span>
</div>
</td>
</tr>
<tr>
<td>
<div class="inner">
<span class="date holiday">7</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">8</span>
</div>
</td>
<td>
<div class="inner">
<span class="date holiday">9</span>
<em class="text holiday">ํ๊ธ๋ </em>
<span class="lunar">์ 9.1</span>
</div>
</td>
<td class="today">
<div class="inner">
<span class="date">10</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">11</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">12</span>
</div>
</td>
<td>
<div class="inner">
<span class="date">13</span>
</div>
</td>
</tr>
</tbody>
</table>
.blind{
position:absolute;
clip:rect(0 0 0 0);
width:1px;
height:1px;
margin:-1px;
overflow:ใ
hidden;
}
table, th {
border: 1px solid #eaedef;
border-collapse: collapse;
}
td { /*today ์
์ top left border๊ฐ๋ ค์ง ํ์ ํด๊ฒฐ*/
border-top: 1px solid #eaedef;
border-left: 1px solid #eaedef;
/*์ค๋ฅธ์ชฝ ํ๋จ๋ถํฐ ์ผ์ชฝ ์๋ก ๋ ๋๋ง๋๋ค*/
/*table์์ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง๋งํผ ์ ๊ฒฝ์จ์ผ ํ ๋ถ๋ถ์ด ๋ฐ๋ก ์ด ๋ผ์ธ์ฒ๋ฆฌ*/
}
table {
width: 590px;
table-layout: fixed; /*์
๊ท ๋ฑ ๋ถํ , ์ฑ๋ฅ ์ด์๋ก ๋ฐ๋์ ์ถ๊ฐ*/
font-size: 12px;
}
th {
height: 25px;
color: #777;
}
.inner {
/*td๊ฐ ์๋ inner div์ relative ์ฃผ๋๊ฑฐ ๊ผญ ๊ธฐ์ตํ๊ธฐ*/
position: relative; /*.lunar์ ๋ถ๋ชจ*/
height: 70px; /*padding ํฌํจํ๋ฉด ์ด 80px*/
padding: 5px;
}
.date {
font-weight: bold;
}
.text {
display: block; /*์ค๋ฐ๊ฟ*/
margin-top: 3px;
font-style: normal; /*em ์คํ์ผ ์ด๊ธฐํ*/
/*๋ง์ค์ ์ฒ๋ฆฌ*/
white-space: nowrap; /*์ค๋ฐ๊ฟ ์๋๊ฒ*/
overflow: hidden; /*๊ธ ์๋ฆฌ๊ฒ*/
text-overflow: ellipsis; /*...*/
}
.date.dimmed {
color: #e7e7e7;
}
.date.holiday {
color: #f44e4e;
}
.text.holiday {
color: #f44e4e;
}
.text.anniversary {
color: #00c;
}
.lunar {
position: absolute;
top: 6px;
right: 6px;
font-size: 11px;
color: #bababa;
}
.today {
border: 1px solid #e0e0bf;
background: #ffffd9;
}
th scope="col, row, clogroup, rowgroup"
์ ๋ชฉ ์
์ธ ๋ชจ๋ th์ ์ถ๊ฐ
th id=""
, td headers=""
์์ฃผ ๋ณต์กํ ํ์์ ์ฌ์ฉํ์ง๋ง, ๋๋ถ๋ถ scope๋ก ์ ๊ทผ์ฑ ํด๊ฒฐ ๊ฐ๋ฅ
์
์ ํฌ๊ธฐ๋ฅผ ์ง์ ํด ์ฃผ์ง ์์์ ๊ฒฝ์ฐ, ๋ด์ฉ์ ๋ง๊ฒ ๋ณํจ
ํ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ์ ๊ฒฝ์ฐ, ๊ฐ ์
์ ๋๋น๋ ์๋๋ถํ
table-layout:fixed;
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ด์ฉ๊ณผ ์๊ด์์ด ๋ชจ๋ ์
์ ๋๋น๊ฐ ๊ท ๋ฑํ๊ฒ ๋ถํ ๋จ
์ฑ๋ฅ ์ด์๋๋ฌธ์ ๋ฐ๋์ ์ฌ์ฉํด์ค์ผ ํ๋ค.
๊ธฐ๋ณธ ๋ชจ์์ ํ
๋๋ฆฌ๊ฐ ์์
ํ์์ ๋ฐ๋ผ ํ
์ด๋ธ ์์์ border์์ฑ ์ ์ฉ
ํ
์ด๋ธ ํ
๋๋ฆฌ ์ฌ์ด์ ๊ฐ๊ฒฉ ์ ๊ฑฐ
ํ
์ด๋ธ ํ
๋๋ฆฌ ์ฌ์ด์ ๊ฐ๊ฒฉ์ ๊ธฐ๋ณธ๊ฐ์ด seperate.
๋ชจ๋ border๋ค์ด ๊ฐ๊ฒฉ์ด ๋จ์ด์ ธ์ ํ
์ด๋ธ์ ์ ์ฉ๋ ์ธ๊ณฝ์ ๊น์ง ๋ชจ๋ ๋ณด์ด๋๊ฒ ๊ธฐ๋ณธ๊ฐ
border-collapse:collapse
์ฌ์ฉ์ border ๋ณํฉ,
ํ
์ด๋ธ์ด ๋ ๋๋ง๋๋ ๋ฐฉ์ ๋๋ฌธ์ (์ค๋ฅธ์ชฝ ์๋์์ ์ผ์ชฝ ์๋ก ๋ ๋๋ง)
border์ left, top์ด ๊ฐ๋ ค์ง๋ ํ์ ๋ฐ์
๋ฐ๋ผ์ table์ border๋ ์ ๊ฒฝ์ ์จ์ css ์์ฑํด์ผํจ
width, background, border๋ฅผ ํด๋น ์ด์ ์ผ๊ด ์ ์ฉ ๊ฐ๋ฅ
colgroup๊ณผ col์ z-index๊ฐ ํ
์ด๋ธ ์์ ๋ด์์ ๋ฎ์ ํธ์ด๋ฏ๋ก width์์ฑ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ
width๊ฐ์ col์ ์ง์ ์ ์ด์ฃผ๋๊ฒ์ HTML5์์ ๋ ์ด์ ์ง์ํ์ง ์์ผ๋ฏ๋ก class๋ style๋ก ์ฒ๋ฆฌ
col span=""
์ผ๋ก ๋ณํฉ ๊ฐ๋ฅ
ํ
์ด๋ธ ์์, ํนํ <td>
๋ ๊ฐ ์์๋ฅผ ๋ฐฐ์นํ๋ ํ๋ก ๋ณด๊ณ td/th๋ฑ์ ์์ inner DIV๋ฅผ ๋ฐ๋์ ์ถ๊ฐํด์ ์์ ์ ์ผ๋ก ๋งํฌ์
ํด๋ผ
์๋๋ฉด ํ
์ด๋ธ์ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์งํ๊ธฐ ๊ต์ฅํ ์ด๋ ค์ด ํ๊ทธ์ค ํ๋์ด๊ธฐ ๋๋ฌธ
๊ทธ๋์ ์์๋ค์ด ๋ง์ด ๋ค์ด์ค๊ฒ ๋๋ฉด ๊ทธ ๋ณต์ก๋์ ๋ฐ๋ผ์ ์ด๋ค ๋ฒ๊ทธ๊ฐ ์๊ธธ์ง ์์ธกํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ด๋ค.