티스토리 뷰

테이블(표)의 칸 합치기 

row는 줄을 뜻해서 세로 줄을 뜻하고, col은 열을 뜻해서 가로.

colspan과 rowspan속성 

표를 만든 후 표의 행이나 열을 합칠 경우 colspan과 rowspan을 사용할 수 있다.

 이 속성은 셀(칸)을 합치는 속성으로 칸을 만드는 th태그나 td태그에 적용할 수 있다.

 

[기본형]

1. 표의 가로 칸을 합칠 경우

<td colspan='숫자'></td>

<th colspan='숫자'></th>

 

2. 표의 세로 칸을 합칠 경우

<td rowspan='숫자'></td>

<th rowspan='숫자'></th>

    <table>
        <figcaption>수업시간표 가을학기</figcaption>
        <tr>
          <th>시간</th>
          <th></th>
          <th></th>
          <th></th>
          <th></th>
        </tr>

        <tr>
          <th>7:30</th>
          <td colspan="4"><p>아침식사</p></td>
        </tr>

        <tr>
          <th>8:00</th>
          <td rowspan="2">경역학:강의 B관, 256호</td>
          <td rowspan="3">물리학:강의 J관, 309호</td>
          <td rowspan="2">경역학: 강의 B관, 256호</td>
          <td rowspan="3">물리학:강의 J관, 309호</td>
        </tr>

        <tr>
          <th>8:30</th>
        </tr>

        <tr>
          <th>9:00</th>
          <td rowspan="2">응용수학 H관,101호</td>
          <td rowspan="2">응용수학 H관,100호</td>
        </tr>

        <tr>
          <th>9:30</th>
          <td></td>
          <td></td>
        </tr>
      </table>
    </div>
  </body>
</html>

    <title>표의 칸 합치기</title>
    <style>
      table {
        border: 3px solid chocolate;
        margin-bottom: 20px;
      }
      th,
      td {
        border: 2px solid green;
      }
      .container {
        display: flex;
        justify-content: space-evenly;
      }
      p{
        text-align: center;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <!-- 2행 2열 표 -->
      <table>
        <caption>
          colspan
        </caption>
        <tr>
          <!-- 해당 칸부터 가로로 2칸을 합침. -->
          <td colspan="2">1행1열</td>
        </tr>

        <tr>
          <td>2행1열</td>
          <td>2행2열</td>
        </tr>
      </table>

      <table>
        <caption>
          rowspan
        </caption>
        <!-- 해당 칸부터 세로로 2칸을 합침. colspan, rowspan 모두 합치고 싶은 시작 칸에 써줘야한다. -->
        <tr>
          <td rowspan="2">1행1열</td>
          <td>1행2열</td>
        </tr>

        <tr>
          <!-- 2행1열을 지워야한다. 첫번째 칸을 합쳤으므로 -->
          <td>2행2열</td>
        </tr>
      </table>

      <table>
        <caption>
          rowspan+colspan
        <tr>
          <td rowspan="3">1</td>
          <td>222</td>
          <td>333</td>
        </tr>

        <tr>
          <td colspan="2">555</td>
        </tr>

        <tr>
          <td>888</td>
          <td>999</td>
        </tr>
      </table>

 


표의구조

시각장애인을 위한 태그

화면낭독기라는 프로그램을 통해서 소리로 듣는다.

표의 구조를 나누는 태그로.

표의 제목부분 <thead>

본문부분 <tbody>

요약부분 <tfoot> 

*thead와 tbody가 tr,td를 대신하지 않는다. thead, tbody 아래 tr, td 써줘야한다.

웹페이지의 게시판 등을 작업할 때 표의 구조를 정의하면 시각 장애인들도 화면낭독기를 통해 표의 구조를 쉽게 이해할 수 있다.

화면에 표현해주지는 않지만 기기를 통해 표를 제대로 구분할 수 있다. 

또한 css를 통해 표 영역에 각기 다른 스타일을 지정하여 표를 꾸밀 수 있다.

 <title>표의 구조</title>
    <style>
      table,
      tr,
      th,
      td {
        border: 2px solid green;
      }
    </style>
  </head>
  <body>

    <table>

      <thead>
        <tr>
          <th>제목</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>내용</td>
        </tr>
      </tbody>
      <tfoot>
        <tr>
          <td>요약부분(생략가능)</td>
        </tr>

      </tfoot>

    </table>
  </body>
  <title>표의 구조</title>
    <style>
      table,
      tr,
      th,
      td {
        border: 2px solid green;
      }
    </style>
  </head>
  <body>
    <table>
      <caption>
        공지사항
      </caption>
      <!-- 표의 제목부분 -->
      <thead>
        <tr>
          <th>번호</th>
          <th>제목</th>
          <th>날짜</th>
        </tr>
      </thead>
      <!-- 표의 본문부분 -->
      <tbody>
        <tr>
          <td>001</td>
          <td>기업설명회(IR)개최</td>
          <td>2025-04-24</td>
        </tr>

        <tr>
          <td>002</td>
          <td>기업설명회(IR)개최</td>
          <td>2025-04-25</td>
        </tr>

        <tr>
          <td>003</td>
          <td>기업설명회(IR)개최</td>
          <td>2025-04-26</td>
        </tr>
      </tbody>
      <!-- 표의 요약부분 -->
      <tfoot>
        <tr>
          <td>025</td>
          <td>총25개의 게시물</td>
          <td>최종날짜 05-21</td>
        </tr>
      </tfoot>
    </table>
  </body>
</html>

 

 


<col>,<colgroup>태그 

세로 줄에 있는 모든 칸에 같은 스타일을 적용하고 싶을 때 사용한다.

<col>태그는 닫힌 태그가 없는 단독태그로 세로로 1줄을 의미하고, 

만약 2줄 이상에 동일한 스타일을 적용하고 싶다면 span속성을 이용하여 두 줄을 하나로 묶을 수 있다.

<colgroup>태그는 여러 세로 줄을 묶어주는 <col>의 부모태그로 

col태그를 사용하려면 반드시 colgroup태그로 묶어주어야한다. 

 

*col의 갯수는 반드시 th또는 td의 갯수와 동일해야한다. 

[기본형] 위치: caption태그의 아래, thead나 tbody 위에 써있어야 한다!

<table>
      <caption>
        공지사항
      </caption>
      <!-- 세로줄 공통 스타일 지정. colgroup태그는 caption의 아래에 위치해야한다. -->
      <colgroup>
        <!-- inline style을 바로 주어도 되지만 우선순위가 높아 수정하기 힘들다. width써줄때
         단위 없이 숫자로만 써준다. width="숫자"-->
        <col width="50" />
        <col span="2" width="150" />
        <col width="100" />
      </colgroup>
      <!-- 표의 제목부분 -->
      <thead>
        <tr>
          <th>번호</th>
          <th>제목</th>
          <th>날짜</th>
...

표 꾸미기 속성

1~4. 해당 속성은 table태그(부모)에 적용해야 한다.

1. border-collapse 속성★

표에 테두리를 적용하면  table태그와 td, th태그에 줄이 각각 생기며 분리되어 있는 것이 기본값이다.

만약 표의 테두리를 하나로 합치고 싶다면 border-collapse속성을 이용할 수 있다.

[속성값]

collapse; 테두리를 하나로 합쳐 표현한다.

separate; 기본값으로 테두리를 분리해서 표현한다.

2. border-spacing 속성

table태그에 border속성을 사용했을 때 기본값인 테두리와 칸들의 테두리 간격을 설정하는 속성이다.

border-collapse가 collapse인 경우 쓸 수 없다. 서로 떨어져 있어야 간격을 설정할 수 있기 때문이다.

[속성값]

숫자px, %;

3. empty-cells 속성 

표에 빈칸이 있을 경우 테두리를 보여줄지 안 보여줄지 지정하는 속성 

border-collaps: collapse;상태일 때에는 사용할 수 없다. 

[속성값]

show; 빈칸의 테두리를 보여준다. 기본값

hide; 빈칸의 테두리를 보여주지 않는다. 

4. table-layout 속성 

width,height를 이용하면 칸에 원하는 사이즈를 지정할 수 있다.

하지만 영문일 경우 여백 없이 길게 입력하면 셀의 width값은 무시되고 영문 내용은 한 줄로 표시된다. 그러면서 

옆칸을 침범하게 된다. 이런 경우 table-layout속성을 이용할 수 있다. 

table-layout속성을 사용하면 지정한 크기를 유지하며 내용은 옆칸을 침범하게 된다.

옆칸을 침범한 내용을 아랫줄로 내리고 싶다면 word-break속성으로 아랫줄로 내릴 수 있다.

[속성값]

fix : 칸의 넓이를 고정하며 셀의 내용에 따라 넓이가 달라지지 않는다.auto : 기본값이며 셀의 내용에 따라 넓이가 달라진다.

5. vertical-align 

칸 안에서 글자를 세로정렬하고 싶을 때 사용하는 속성.

이 속성은 표에서만 사용할 수 있고, 적용하고자 하는 해당 칸에 직접 적용한다.

*이미지태그에도 쓸 수 있다.

[속성값]

baseline;

top;

middle;

기본값, 셀의 중앙에 글자를 맞춤

bottom;

패딩 영역을 제외한 

<title>세로줄을 묶어주는 태그</title>
    <style>
      table,
      th,
      td {
        border: 2px solid darkblue;
      }

      colgroup > col:nth-child(1) {
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <!--
      <col>,<colgroup>태그
      ==============================
      세로 줄에 있는 모든 칸에 같은 스타일을 적용하고 싶을때 사용한다.
      <col>태그는 닫힌 태그가 없는 단독태그로 세로로 1줄을 의미하고,
      만약 2줄 이상에 동일한 스타일을 적용하고 싶다면 span속성을 이용하여
      두 줄을 하나로 묶을 수 있다.
      <colgroup>태그는 여러 세로 줄을 묶어주는 <col>의 부모태그로
      col태그를 사용하려면 반드시 colgroup태그로 묶어주어야 한다.

      *col의 갯수는 반드시 th또는 td의 갯수와 동일해야 한다.

      [기본형]
      <table>
        <colgroup>
          <col span="2" /> => 세로줄 두 줄을 span으로 묶음
          <col />          => 세로줄 1줄
        </colgroup>
        <thead></thead>
        <tbody></tbody>
      </table>
    -->

    <table>
      <caption>
        공지사항
      </caption>
      <!-- 세로줄에 공통스타일 지정 -->
      <colgroup>
        <col span="2" width="200" />
        <col width="100" />
      </colgroup>
      <!-- 표의 제목부분 -->
      <thead>
        <tr>
          <th>번호</th>
          <th>제목</th>
          <th>날짜</th>
        </tr>
      </thead>
      <!-- 표의 본문부분 -->
      <tbody>
        <tr>
          <td>001</td>
          <td>기업설명회(IR)개최</td>
          <td>2025-04-14</td>
        </tr>
        <tr>
          <td>002</td>
          <td>기업설명회(IR)개최</td>
          <td>2025-04-14</td>
        </tr>
        <tr>
          <td>003</td>
          <td>기업설명회(IR)개최</td>
          <td>2025-04-14</td>
        </tr>
      </tbody>
      <!-- 표의 요약부분 -->
      <tfoot>
        <tr>
          <td>025</td>
          <td>총 25개의 게시물</td>
          <td>-</td>
        </tr>
      </tfoot>
    </table>
  </body>