본문 바로가기

Langauge/HTML, CSS

[HTML, CSS] 테이블(table) 생성 - colspan, rowspan/ vertical-align , text-align/ :first-child, :last-child, :nth-child(숫자), ~, +

<body>
  <div id="container">
     <table>
        <caption>&lt;테이블&gt; 테이블에 대한 설명문구1</caption>  <!-- &lt;테이블&gt  ==> <테이블> -->

        <tr>
            <th width="30%" rowspan="3">여름맞이 바겐세일</th>
            <!-- rowspan 은 행병합인데 rowspan="3"은 3개행을 하나로 병합한다. 
                 조심할 것은 밑에 <tr>태그가 바로 나와야 한다. -->
            <th width="30%">제품이름과 설명</th>
            <th width="20%">개당 가격</th>
            <th>박스당 개수</th>
       <!-- <th width="20%">박스당 개수</th> -->  <!-- 마지막 열은 width="20%" 을 생략해도 된다. -->
        </tr>
        <tr>
            <td class="mycenter">블라우스 - 붉은색 실크</td>
            <td class="myright">20,000원</td>
            <td class="mycenter">150</td>
        </tr>			
        <tr>
            <td class="mycenter">바지 - 검은색 원단</td>				
            <td class="myright">4,000원</td>				
            <td class="mycenter">300</td>				
        </tr>			

        <tr>
            <td colspan="2" class="mycenter">
                <span>총액</span>
                <span>및</span>
                <span>총박스</span>
                <span>개수</span>
            </td>  
            <!-- colspan 은 열병합인데 colspan="2" 은 2개열을 하나로 병합한다. --> 
            <td class="myright">24,000원</td>
            <td class="mycenter">450</td>
        </tr>
     </table>
   </div>
</body>

 

1. colspan , rowspan

  • rowspan : 행병합.  rowspan="3"은 3개행을 하나로 병합한다. 
                     조심할 것은 밑에 <tr>태그가 바로 나와야 한다.
  • colspan : 열병합.  colspan="2" 은 2개열을 하나로 병합한다.
  • border-collapse: collapse : 표(table)의 테두리와 셀(td)의 테두리 사이의 간격을 없앤다.                                                                                             즉, 두줄로 겹치는 부분은 한줄로 나오게 한다.
  • <tr> :   table row 의 약자로, 가로줄(행) 생성을 의미한다.  자동적으로 가운데정렬, 폰트 볼드체로 설정된다.
  • <th> :  table head 의 약자로, 표의 제목을 의미한다.          자동적으로 가운데정렬, 폰트 볼드체로 설정된다.
  • <td>  table data 의 약자로,생성을 의미한다.               자동적으로 왼쪽정렬, 폰트 기본굵기로 설정된다.

 


2. vertical-align , text-align

<caption>&lt;테이블&gt; 테이블에 대한 설명문구1</caption> 

<caption align="bottom">&lt;테이블&gt; 테이블에 대한 설명문구2</caption>   <!-- align="bottom" 기본값이 "top"인데 "bottom" 으로 변경한다. -->
  • <caption> : 표의 설명 또는 제목 태그
  • align="bottom" :  표의 제목을 표시하는 속성                                                                                                                                                align="top"이 기본값인데,  "bottom" 으로 변경한 것이다.
  • vertical-align : 세로기준으로 정렬한다. 즉, 위쪽(top) 가운데(middle) 아래쪽(bottom) 정렬이다.                                                           가운데(middle) 정렬은 기본값이다.
  • text-align : 가로기준으로 정렬한다. 즉, 왼쪽(left) 가운데(center) 오른쪽(right) 정렬이다.                                                                 왼쪽(left) 정렬은 기본값이다.

위와 같이 나타난다.

 


3. :first-child , :last-child , :nth-child(숫자)  /  ~, +

tr > th:first-child ~ th { 
		background-color: yellow;
		height: 50px;
	}
-----------------------------------------------------------------------------------------------------
<tr>
    <th width="30%" rowspan="3">여름맞이 바겐세일</th>
    <!-- rowspan 은 행병합인데 rowspan="3"은 3개행을 하나로 병합한다. 
         조심할 것은 밑에 <tr>태그가 바로 나와야 한다. -->
    <th width="30%">제품이름과 설명</th>
    <th width="20%">개당 가격</th>
    <th>박스당 개수</th>
	<!-- <th width="20%">박스당 개수</th> -->  <!-- 마지막 열은 width="20%" 을 생략해도 된다. -->
</tr>
  • tr > th:first-child 은 "여름 맞이 바겐세일" 의 th 태그인데,
    tr > th:first-child ~ :  "여름 맞이 바겐세일" 의 th 태그 다음에 오는(자신 제외) 모든 형제태그(형제엘리먼트, 형제노드)를 말한다. 해당코드에서는 tr > th 태그 밖에 존재하지 않는다.  따라서 yellow 컬러로 표시된 셀이 없다.

예시) tr > th:first-child &nbsp;~

 

  • tr > th:first-child ~ th : "여름 맞이 바겐세일" 의 th 태그 다음에 오는(자신 제외) 모든 형제태그(형제엘리먼트, 형제노드) 중에 th 태그만을 가리키는 선택자(selector)이다.

예시)&nbsp;tr > th:first-child&nbsp; ~ th

 

tr:last-child > td:first-child > span:first-child + span { /* tr:last-child > td:first-child > span:first-child 를 제외한 다음에 오는 모든 형제태그 중에서도 자신 바로 밑에 오는 span 태그를 가리킨다. */
		color: red;
	}
-----------------------------------------------------------------------------------------------------
 <tr>
    <td colspan="2" class="mycenter">
        <span>총액</span>
        <span>및</span>
        <span>총박스</span>
        <span>개수</span>
    </td>  
    <!-- colspan 은 열병합인데 colspan="2" 은 2개열을 하나로 병합한다. --> 
    <td class="myright">24,000원</td>
    <td class="mycenter">450</td>
</tr>
  • tr:last-child > td:first-child > span:first-child 은 바로 <span>총액</span> 을 가리키는 선택자(selector)인데,
    tr:last-child > td:first-child > span:first-child + span : <span>총액</span> 엘리먼트의 바로 밑 형제태그인 span 엘리먼트를 말한다. (바로 밑 동생의 엘리먼트를 말한다.)

tr:last-child&nbsp;>&nbsp;td:first-child&nbsp;>&nbsp;span:first-child&nbsp; + span