10. table 관련 속성 -바닥부터 시작하는 CSS-
1. Table Borders
이미 배운 border 속성을 사용한다.
<table>, <th>, <td> 태그에 줄 수 있다. ( <tr>에는 주지 않는다.)
아래의 예에서는 <table>에 border와 <td>또는 <tr>에 border가 생기므로 이중 border가 만들어 진다.
예 10-1
- <html>
- <head>
- <style>
- table,
- td,
- th {
- border: 1px solid black;
- }
- </style>
- </head>
- <body>
- <h4>table 내부에 border 만들기</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- </tr>
- </table>
- </body>
- </html>
2. Collapse Table Borders
border-collapse 속성도 이미 공부했듯이 table border를 한 겹으로 만든다.
<table>태그에 넣는다.
separate(기본값), collapse(single border)
예 10-2
- <html>
- <head>
- <style>
- table {
- border-collapse: collapse;
- }
- table, td, th {
- border: 1px solid black;
- }
- </style>
- </head>
- <body>
- <h4>border-collapse를 사용한 결과:</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- </tr>
- </table>
- <p>
- <b>알림:</b>IE8과 그 이전 버전에서는 !DOCTYPE을 선언하지 않으면 이상 결과를 초래한다.</p>
- </body>
- </html>
table에만 border가 필요하다면 <table>태그에만 border 속성을 적용 시킨다.
예 10-3
- <html>
- <head>
- <style>
- table {
- border-collapse: collapse;
- border: 1px solid black;
- }
- </style>
- </head>
- <body>
- <h4>Table의 Single border.</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- </tr>
- </table>
- </body>
- </html>
3. Table Width and Height
이미 배운 width와 height 속성을 사용한다.
예 10-4
- <html>
- <head>
- <style>
- table,
- td,
- th {
- border: 1px solid black;
- }
- table {
- border-collapse: collapse;
- width: 100%;
- }
- th {
- height: 50px;
- }
- </style>
- </head>
- <body>
- <h4>width와 height 속성을 적용</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- </tr>
- </table>
- </body>
- </html>
4. 가로 정렬
text-align 속성을 사용해서 <tr>, <td>안의 내용을 가로 정렬 한다.
<th>의 기본은 중앙 정렬이고, <td>의 기본은 왼쪽 정렬이다.
예 10-5
- <html>
- <head>
- <style>
- table,
- td,
- th {
- border: 1px solid black;
- }
- table {
- border-collapse: collapse;
- width: 100%;
- }
- th {
- text-align: left;
- }
- </style>
- </head>
- <body>
- <h4>text-align에 의한 가로 정렬</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- <th>beverage</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- <td>water</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- <td>coke</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- <td>beer</td>
- </tr>
- </table>
- </body>
- </html>
5. 세로 정렬
vertical-align 속성에 top, bottom, middle 등의 속성 값을 사용해서 <th> 또는 <td>의 내용을 세로 정렬한다.
<th>, <td>의 기본 vertical-align값은 둘 다 middle이다.
예 10-6
- <html>
- <head>
- <style>
- table,
- td,
- th {
- border: 1px solid black;
- }
- table {
- border-collapse: collapse;
- width: 100%;
- }
- td {
- height: 50px;
- vertical-align: bottom;
- }
- </style>
- </head>
- <body>
- <h4>The vertical-align을 이용한 세로 정렬</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- <th>beverage</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- <td>water</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- <td>coke</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- <td>beer</td>
- </tr>
- </table>
- </body>
- </html>
6. Table Padding
<td>와 <th>에 padding 속성을 사용해서 내용과 border사이에 있는 여백을 조절한다.
예 10-7
- <html>
- <head>
- <style>
- table,
- td,
- th {
- border: 1px solid #ddd;
- text-align: left;
- }
- table {
- border-collapse: collapse;
- width: 100%;
- }
- td,
- th {
- padding: 15px;
- }
- </style>
- </head>
- <body>
- <h4>padding 속성 사용하기</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- <th>beverage</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- <td>water</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- <td>coke</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- <td>beer</td>
- </table>
- </body>
- </html>
7. 수평 분리선(Horizontal Dividers)
border-bottom 속성을 <th>와 <td>에 적용하여 수평 분리선을 만든다.
예 10-8
- <html>
- <head>
- <style>
- table {
- border-collapse: collapse;
- width: 100%;
- }
- td,
- th {
- padding: 8px;
- text-align: left;
- border-bottom: 1px solid #ddd;
- }
- </style>
- </head>
- <body>
- <h4>수평 분리선 만들기</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- <th>beverage</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- <td>water</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- <td>coke</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- <td>beer</td>
- </tr>
- </table>
- </body>
- </html>
8. 수직 분리선 만들기
좌측 <td>의 border-right 에만 빨간 선을 지정해서 양쪽을 나눈다.
예 10-9
- <html>
- <head>
- <style>
- .td1 {
- width: 190px;
- border-right: 1px solid red;
- padding-right: 12px;
- text-align: justify;
- vertical-align: top;
- }
- .td2 {
- width: 190px;
- padding-left: 10px;
- vertical-align: top;
- }
- </style>
- </head>
- <body>
- <table>
- <tr>
- <td class="td1">
- 그대는 한줄기 햇살처럼 흩어지는 나뭇잎사이로 내 품에 잠시 머물은 보라 빛 노을이었나 사랑한단 말도 모르는데 울먹이는 저녁 아이처럼 내 품에
- 잠시 머물은 한줄기 햇살이었나 그 마음을 알 수 없어 흐르던 눈물은 흐르질 않지만 그저 지난 추억이 아름다워 다시 또 생각나는가</td>
- <td class="td2">얼마나 많은 생각이 그대를 찾으려 꿈길만 헤맸는지 그대 저 산 멀리 점되어 날으는 새들같이 떠났지
- </td>
- </tr>
- </table>
- </body>
- </html>
8. Hoverable Table
:hover 선택자를 이용해 마우스를 <tr>에 올리면 해당 줄에 highlight가 생기게 한다.
예 10-10
- <html>
- <head>
- <style>
- table {
- border-collapse: collapse;
- width: 100%;
- }
- td,
- th {
- padding: 8px;
- text-align: left;
- border-bottom: 1px solid #ddd;
- }
- tr:hover {
- background-color: #f5f5f5;
- }
- </style>
- </head>
- <body>
- <h4>Hoverable Table</h4>
- <p>mouse를
- <tr>위에 올리면 해당 줄에 highlight가 생긴다.</p>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- <th>beverage</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- <td>water</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- <td>coke</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- <td>beer</td>
- </tr>
- </table>
- </body>
- </html>
9. Striped Tables
얼룩말 무늬의 table을 만들기 위한 방법으로, nth-child() 선택자를 사용해서 짝수 또는 홀수 줄에 다른 배경색을 지정한다.
tr:nth-child(even), tr:nth-child(odd)
예 10-11
- <html>
- <head>
- <style>
- table {
- border-collapse: collapse;
- width: 100%;
- }
- td,
- th {
- text-align: left;
- padding: 8px;
- }
- tr:nth-child(even) {
- background-color: #f2f2f2;
- }
- </style>
- </head>
- <body>
- <h4>Striped Table</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- <th>beverage</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- <td>water</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- <td>coke</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- <td>beer</td>
- </tr>
- </table>
- </body>
- </html>
10. Table Color
배경색이나 글자색을 지정한다.
예 10-12
- <html>
- <head>
- <style>
- table {
- border-collapse: collapse;
- width: 100%;
- }
- td,
- th {
- text-align: left;
- padding: 8px;
- }
- tr:nth-child(even) {
- background-color: #f2f2f2;
- }
- th {
- background-color: #4CAF50;
- color: white;
- }
- </style>
- </head>
- <body>
- <h4>Table에 배경색 적용</h4>
- <table>
- <tr>
- <th>fruits</th>
- <th>foods</th>
- <th>beverage</th>
- </tr>
- <tr>
- <td>apple</td>
- <td>beef</td>
- <td>water</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- <td>coke</td>
- </tr>
- <tr>
- <td>orange</td>
- <td>chicken</td>
- <td>beer</td>
- </tr>
- </table>
- </body>
- </html>
12. Responsive Table
<div>와 같은 부모 요소에 overflow-x:auto; 속성 값을 주면, 안에 있는 <table> 요소는 자료가 그 폭을 넘칠 경우 가로 스크롤을 생성해서 대응(responsive)한다.
예 10-13
- <html>
- <head>
- <style>
- table {
- border-collapse: collapse;
- width: 100%;
- }
- td,
- th {
- text-align: left;
- padding: 8px;
- }
- tr:nth-child(even) {
- background-color: #f2f2f2;
- }
- </style>
- </head>
- <body>
- <h4>
- 대응 형(Responsive) Table</h4>
- <div style="overflow-x:auto;">
- <table>
- <tr>
- <th>Company</th>
- <th>country</th>
- <th>Points</th>
- <th>Points</th>
- <th>Points</th>
- <th>Points</th>
- <th>Points</th>
- <th>Points</th>
- <th>Points</th>
- <th>Points</th>
- <th>Points</th>
- <th>Points</th>
- </tr>
- <tr>
- <td>Samsung</td>
- <td>Korea</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- </tr>
- <tr>
- <td>Apple</td>
- <td>USA</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- <td>50</td>
- </tr>
- </table>
- </div>
- </body>
- </html>
13. 테이블 설명 붙이기(table caption)
caption-side 속성을 이용해 테이블에 설명 또는 제목의 위치를 정할 수 있다.
top(테이블 위), bottom(테이블 아래)
예 10-14
- <html>
- <head>
- <style>
- table,
- td,
- th {
- border: 1px solid black;
- }
- caption {
- caption-side: bottom;
- }
- </style>
- </head>
- <body>
- <table>
- <caption>Table 1.1 Customers</caption>
- <tr>
- <th>Company</th>
- <th>Contact</th>
- <th>Country</th>
- </tr>
- <tr>
- <td>Alfreds Futterkiste</td>
- <td>Maria Anders</td>
- <td>Germany</td>
- </tr>
- <tr class="alt">
- <td>Berglunds snabbköp</td>
- <td>Christina Berglund</td>
- <td>Sweden</td>
- </tr>
- <tr>
- <td>Centro comercial Moctezuma</td>
- <td>Francisco Chang</td>
- <td>Mexico</td>
- </tr>
- </table>
- <p>
- <b>알림:</b>IE8에서는 !DOCTYPE을 선언해야 caption-side 속성이 적용된다.</p>
- </body>
- </html>
14. table-layout
table-layout 속성은 cell안의 내용이 길면 cell의 길이가 늘어나는 문제를 해결하기 위해서 <table>요소에 사용된다.
auto : 연속되어 있는 내용의 길이만큼 cell의 길이가 늘어난다. (기본 값)
내용에 공백이 있다면 줄 바꿈이 일어나지만 공백이 없는 긴 영문은 cell의 길이를 늘어나게 한다.
fixed : cell의 길이는 고정이 되어 공백없는 긴 내용은 cell을 벗어나게 된다.
적정 위치에서 줄 바꿈이 일어나게 하려면 word-break:break-all; 속성을 <table>요소에 추가적으로 지정해 주면 된다.
예 10-15
- <html>
- <head>
- <style>
- table {
- border-collapse: separate;
- width: 100%;
- border: 1px solid black;
- }
- td {
- border: 1px solid black;
- }
- table.ex1 {
- table-layout: auto;
- }
- table.ex2 {
- table-layout: fixed;
- }
- table.ex3 {
- table-layout: fixed;
- word-break: break-all;
- }
- </style>
- </head>
- <body>
- <p>table-layout: auto:</p>
- <table class="ex1">
- <tr>
- <td width="10%">1000000000000000000000000000</td>
- <td width="90%">10000000</td>
- </tr>
- </table>
- <p>table-layout: fixed:</p>
- <table class="ex2">
- <tr>
- <td width="10%">1000000000000000000000000000</td>
- <td width="90%">10000000</td>
- </tr>
- </table>
- <p>table-layout: fixed 와 word-break: break-all:
- </p>
- <table class="ex3">
- <tr>
- <td width="10%">1000000000000000000000000000</td>
- <td width="90%">10000000</td>
- </tr>
- </table>
- </body>
- </html>
15. empty-cells 속성
테이블에서 빈 셀에 대해 그 셀의 테두리나 배경을 브라우저에 보여줄지 보여주지 않을지를 지정하며 border-collapse 속성 값이 separate일 때만 해당된다.
show : 보여준다.(기본 값)
hide : 감춘다.
IE8에서는 !DOCTYPE의 선언이 필요하다.
예 10-16
- <html>
- <head>
- <style>
- table {
- border-collapse: separate;
- empty-cells: hide;
- }
- </style>
- </head>
- <body>
- <table border="1">
- <th>fruits</th>
- <th>foods</th>
- <th>beverage</th>
- </tr>
- <tr>
- <td>apple</td>
- <td></td>
- <td>water</td>
- </tr>
- <tr>
- <td>banana</td>
- <td>pork</td>
- <td>coke</td>
- </table>
- </body>
- </html>
'COMPUTER > CSS' 카테고리의 다른 글
9. 중앙 정렬 -바닥부터 시작하는 CSS- (0) | 2017.01.07 |
---|---|
8. font 관련 속성들 -바닥부터 시작하는 CSS- (0) | 2017.01.07 |
7. text에 관련된 속성들 -바닥부터 시작하는 CSS- (0) | 2017.01.05 |
6. margin, padding, border 속성 -바닥부터 시작하는 CSS- (0) | 2016.12.30 |
5. position 속성 -바닥부터 시작하는 CSS- (0) | 2016.12.24 |