HTML 기초 - 2 Table, Semantic, div&span

나는야 멋쟁이·2023년 2월 2일
0

해당 그림과 같이 만들기 위해

  1. thead, tbody, tfoot 나누기
  2. 4*4 행렬 생성
  3. rowspan을 통한 세로 묶기
  4. colspan을 통한 가로 묶기
  5. 밥,국,반찬은 굵은 글씨이므로 클래스 설정해서 css font-weight:bold 설정
.menu {
        font-weight: bold;
      }

    <table>
      <thead>
        <tr>
          <th></th>
          <th>아침</th>
          <th>점심</th>
          <th>저녁</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td class="menu"></td>
          <td>현미밥</td>
          <td rowspan="2">호박죽</td>
          <td>흰쌀밥</td>
        </tr>
        <tr>
          <td class="menu"></td>
          <td>콩나물국</td>
          <td>갈비탕</td>
        </tr>
        <tr>
          <td class="menu">반찬</td>
          <td colspan="3">배추김치</td>
        </tr>
      </tbody>
    </table>

결과물은 아래와 같음

Semantic 활용 차이점

semantic을 사용하지 않는다면 아래와 같이 div class를 지정해야하므로 가독성이 떨어짐

<body>
    <div class="header">Header 영역</div>
    <div class="nav">
      <ul>
        <li>Menu1</li>
        <li>Menu2</li>
        <li>Menu3</li>
        <li>Menu4</li>
      </ul>
    </div>
    <div class="main">Content 영역</div>
    <div class="footer">footer 영역</div>
  </body>

semantic을 사용한다면 class 비사용으로 더 간결한 코드 작성 가능

<body>
    <header>header 영역</header>
    <nav>
      <ul>
        <li>Menu1</li>
        <li>Menu2</li>
        <li>Menu3</li>
        <li>Menu4</li>
      </ul>
    </nav>
    <main>content</main>
    <footer>footer</footer>
  </body>

즉 semantic tag는 의미를 갖는 태그로 적절한 분배가 필요

span과 div의 공통점, 차이점

공통점 = 무언가를 나누는 역할 -> semantic처럼 큰 의미로 나누는건 아님
차이점
1. div는 보통 이미지나 표 등 보이는 영역을 나눌 때 / span는 텍스트 영역 설정할 때 사용
2. div는 해당 영역 만큼 설정(컨테이너) / span는 해당 부분만큼만 설정(특정아이템)
3. div = block / span = inline -> 즉 block은 세로, inline은 가로로 나열되는 방식
4. block은 가로,세로 수정 가능 / inline은 불가능

profile
열심히 개발공부하기

0개의 댓글