본문 바로가기
디지털 노마드를 꿈꾸며/HTML

HTML 표, 목록

by 오일러33 2020. 3. 18.

1. HTML 표(table)

먼저, 표의 가로줄은 열 row, 세로줄은 행 column(왜 난 맨날 헷갈려)

 

 

표를 만드는 태그는 <table>태그로 정의할 수 있다. 

각 가로줄인 열(row)은 table row에서 <tr>를 사용한다. 화면에 꽉 채워진 표를 위해서 style="width:100%"를 추가한다. 왼쪽에서부터 오른쪽으로 각각의 제목은 table heading에서부터 <th>를 붙여서 지정한다. 자동적으로 굵고, 중앙에 위치한 텍스트로 나타난다. 

<table style="width:100%">

  <th>Number</th>

  <th>Name</th>

  <th>Age</th>

</table>

 

각 열의 제목에 따라 내용을 채우고 싶을 때는 table data/cell에서 <td>를 붙인다. 여기에서는 이미 첫 열에서 number, name, age라고 했기 때문에 각 헤딩에 맞게 데이터를 작성한다. 데이터는 텍스트, 다른 표, 이미지 등이 가능하다.

<tr>

  <td>1</td>

  <td>Anna</td>

  <td>10</td>

</tr>

 

<tr>

  <td>2</td>

  <td>Tom</td>

  <td>12</td>

</tr>

 

<tr>

  <td>3</td>

  <td>Harry</td>

  <td>11</td>

</tr>

 

즉, <table>안에 첫 줄(열)의 헤딩(제목)을 <th>으로 설정하고, 

각 헤딩의 갯수에 따라 데이터를 <td>로 채워주는데 각 열에 맞게 채워주는 것이므로 <tr>을 사용한다.

 

 

그런데 이 상태로 두고 실행해보면, 표인데 선이 없다!!

 

스타일을 추가해야한다. border속성을 추가해야 한다.

table, th, td {

  border: 1px solid black; 

}

 

그런데! 또 그러면 선이 이렇게 이중으로 된다. 각 데이터마다 보더가 만들어지니까.

 

지금 상태가 좋다면 냅둬도 좋겠지만, 하나의 깔끔한 선을 만드려면 두 선을 뭉개줘야 한다. collapse를 사용한다.

table, th, td {

  border: 1px solid black;

  border-collapse: collapse;

}

그러면 흔히 테이블을 만들 때 생각하는 하나의 깔끔한 선의 표가 생성된다.

 

 

데이터와 선 사이의 간격을 좀 넓히고 싶다면? padding을 사용해서 여백을 추가해준다. 

th, td {

   padding: 15px;

}

 

 

원래 헤딩은 볼드체에 중앙배열이 기본값이지만, 원하는 쪽으로 바꿀 수 있다. text-align을 사용한다.

th {

  text-align: left/right;

}

 

 

collapse하기 전 원래 상태에서 경계선 사이에 간격을 주고 싶다면? border-spacing을 사용한다.

table {

  border-spacing: 5px;

}

 

 

셀 합치기를 가로로 하고 싶다면? 각 행이 합쳐지는 것이므로 colspan을 사용한다. 몇 개의 칸을 합치고 싶은지에 따라 숫자를 써준다.

<tr>

  <th> number </th>

  <th colspan="2"> title </th>

</tr>

 

셀 합치기를 세로로 하고 싶다면? 각 열이 합쳐지는 것이므로 rowspan을 사용한다. 역시 합치고 싶은 칸의 개수에 맞게 숫자를 써준다.

<table>

  <tr>

    <th>Number</th>

    <th>Name</th>

    <th>Age</th>

  </tr>

  

   <tr>

     <td>1</td>

     <td rowspan="2">Name</td>

    </tr>

 

    <tr>

      <td>13</td>

    </tr>

</table>

 

 

표에 제목을 붙이고 싶다면? <caption>태그를 <table>태그 바로 뒤에 넣어준다.

<table style=100%>

  <caption>Table Name</caption>

  <tr>

    <th>...</th>

  </tr>

 

  <tr>

    <td>...</td>

  </tr>

</table>

 

 

하나의 특정한 표에 특정한 특징을 추가하고 싶다면? 이쯤 되니 감이 생긴다. 특정한 것을 지정하는 데 id를 사용한다는 것을. 스타일 속성에서 지정된 표 이름에 어떤 스타일을 추가할 것인지 정의한 후에 <table>에 id로 표 이름을 다시 불러준다. 

<html>

<head>

<style>

table#t01 {

  width: 80%

  background-color: #f1f1c1

}

</style>

</head>

<body>

<table id="t01">

  <tr>

    <th>..</th>

  </tr>

  <tr>

    <td>..</td>

  </tr>

</body>

</html>

 

src: w3school.com

 

2. HTML 목록(lists)

목록에는 unordered list라고 해서 정렬 순서 없이 나열된 것과 ordered list라고 해서 숫자나 알파벳 순서에 따라서 나열된 형태가 있다. 전자는 <ul> 후자는 <ol>를 사용한다. 그리고 리스트의 내용은 <li>를 사용한다. closing tag도 붙여줘야 한다. 

 

- 정렬되지 않은 목록(unordered list)

<ul>...</ul>을 사용한다. 각 항목은 기본값으로 까만 점(disc)으로 표시된다. <ul>에 list-style-type을 지정하면 선호도에 따라서 빈원(circle), 사각형(square), 아무것도 없는 것(none)으로 선택할 수 있다.

<ul style="list-style-type:disc/circle/square/none;">

  <li>coffee</li>

  <li>tea</li>

  <li>juice</li>

</ul>

 

- 정렬된 목록(ordered list)

<ol>...</ol>을 사용한다. 기본적으로 각 항목은 숫자(type="1")로 표시된다. 선호도에 따라서 타입 속성을 추가하여 알파벳 대문자(type="A"), 알파벳 소문자(type="a"), 로마자 대문자(type="I"), 로마자 소문자(type="i")를 선택할 수 있다.

<ol type="1/A/a/I/i">

  <li>coffee</li>

  <li>tea</li>

  <li>juice</li>

</ol>

 

 

이 외에도 가능한 목록은 다음과 같다.

 

- 각 항목을 설명하는 목록(description lists)

description list에서 <dl>...</dl>을 사용한다. 그 아래에 큰 항목은 description term에서 <dt>..</dt>, 각 아래에 묘사하는 부분은 <dd>를 사용한다. 설명 부분은 오른쪽으로 더 이동해서 보인다.

<dl>

  <dt>tea</dt>

  <dd>-from Jeju</dd>

  <dt>milk</dt>

  <dd>-from Jeju</dd>

</dl>

 

- 각 항목 밑에 또 항목있는 목록(nested lists)

목록 안에 또 둥지를 틀어서? <ul>이든 <ol>이든 상관없이 또 목록을 만들고 싶은 항목 아래에 목록 태그를 달아주면 된다.

<ul>

  <li>tea</li>

     <ol>green tea</ol>

     <ol>black tea</ol>

     <ol>chai tea</ol>

</ul>

 

- 특정 숫자부터 시작되는 목록(control list counting)

정렬된 목록인데 특정한 숫자로부터 시작하고 싶은 목록을 만든다. start="원하는 숫자"를 추가한다.

<ol start="30">

  <li>...</li>

</ol>

 

- 수평으로 나열된 목록(horizontal lists)

이 경우는 홉페이지에 들어가보면 소개-목적-작품-연락처 등 가로로 목록이 변형된 것처럼 만들 수 있는 태그이다.

이건 지금 쓰기에 넘나 기니까 CSS가면 배워야겠다.

 

src: w3school.com

 

 

 

+느낀점

이걸 지금 다 하나하나 알고 있는게 유용할까? 만약 워드프레스로 하면 바로 표 만드는 도구가 있을거 같은데.... 그래도 지금 기초적인거 하나하나 알아두면 좋긴 할거 같기도 하고. 

 

 

댓글