본문 바로가기

HTML5 + CSS3 + Javascript (웹 프로그래밍)/02. HTML5 기본 문서 만들기

3. 고급 문서 만들기

 들어가며

 지금까지 기초적인 HTML 문서를
만드는 방법을 다루었다.

 이번 절에선는 이미지, 리스트,
테이블 등을 만드는

 고오급 기능에 대해 알아본다.

 

이미지 삽입, <img>

 <img> 태그를 이용하면 HTML
문서에 이미지를 삽입할 수 있다.

 다음 코드는 <img> 태그의 속성들을
보여주며

<img src="이미지 파일의 URL"
     art="문자열"
     width="이미지의 폭"
     height="이미지 높이">
<!--
    src: 이미지 파일의 URL. 필수 속성.
    alt: 이미지가 없가나 손상되는 등 이미지를 출력할 수 없는 경우 출력되는 문자열. 필수 속성.
    width: 이미지가 출려되는 너비로, 생략되면 원본 이미지의 폭. 픽셀 수.
    height: 이미지가 출력되는 높이로, 생략되면 원본 이미지의 높이. 픽셀 수.
-->

 

 src 속성으로 지정할 수 있는 이미지
종류는 다음과 같다.

BMP, GIF, PNG, JPG(JPEG), animated-GIF

 

 src 속성에 다른 웹 사이트 이미지
주소를 주어

 다른 웹 사이트의 이미지를 출력할
수도 있다.

<!DOCTYPE html>
<html>
    <head><title>이미지 삽입</title></head>
</html>
<body>
    <h3>이미지 삽입</h3>
    <hr>
    <p>페페 사진입니다.</p>
    <img src="pepe.png" width="200" height="200" alt="페페콘1">
    <img src="pepe.jpg" width="100" height="100" alt="페페콘2">
    <img src="https://www.google.co.kr/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
         width="150" height="150" alt="구글">
</body>

태그의 잘못된 속성 사용은 혼란을 초래

 태그 속성을 잘못 사용하면,
혼란을 야기할 수도 있다.

 다음과 같이 <img> 태그의 src에는
호랑이 사진(tiger.jpg)을,

 alt에는 '사자 사진'으로 작성한
경우를 보자.

<img src="tiger.jpg" art="사자 사진">

 

 이때, 검색 사이트에서 '사자 사진'을
검색하면,

 검색 엔진은 이 웹페이지에서 alt
속성에 적힌 '사자 사진'을 발견하고

 tiger.jpg를 검색 결과로 반환할 것이다.

 하지만 이것은 잘못된 검색 결과를
초래한다.

 

리스트 만들기, <ol>, <ul>, <dl>

 리스트는 데이터를 나열할 때
사용되며 종류는 3가지이다.

  • 순서 있는 리스트(ordered list) - <ol></ol>
  • 순서 없는 리스트(unordered list) - <ul></ul>
  • 정의 리스트(definition list) - <dl></dl>

 리스트의 각 아이템은 <li> 태그를
사용하며 </li>는 생략할 수 있다

 <ol>, <ul>, <li> 태그의 사용법은
다음과 같다.

 <ol> 태그의 사용법

<!--type, start 속성 대신 CSS3 스타일을 사용할 것을 권장-->
<ol type="1"
    start="value">
    <li>아이템</li>
    <li>아이템</li>
</ol>

<!--
    type: 마커 종류
        type="1"    (디폴트) 1, 2, 3, ...
        type="A"    A, B, C, ...
        type="a"    a, b, c, ...
        type="I"    I, II, III, ...
        type="i"    i, ii, iii ...
    start: 마커의 시작 값. start 속성은 숫자에 대해서만 사용
        예) start="5"  →  5, 6, 7, ...(5부터 시작)
-->

 

 <ul> 태그의 사용법

<ul>
    <li>아이템</li>
    <li>아이템</li>
</ul>

 

<li> 태그의 사용법

<li type="1">아이템</li>
<!--
    type: 마커 종류 <ol> 태그에 대해서만 유효
        type="1"    (디폴트) 1, 2, 3, ...
        type="A"    A, B, C, ...
        type="a"    a, b, c, ...
        type="I"    I, II, III, ...
        type="i"    i, ii, iii ...
-->

 

 리스트와 아이템 꾸미기

 HTML5에서는 리스트나 아이템을
꾸미는 모든 작업은

 CSS3 스타일로 작성하도록
하고 있다.

 5장에서는 CSS3를 이용하여
리스트 색 꾸미기,

 아이템의 마커 꾸미기 등의
자세한 내용을 소개한다.

 

<ol>과 <ul>

 <ol>은 순서가 있는 각 과정을
나열할 때 사용하며,

 <ul>은 순서 없이 아이템을
나열할 때 사용한다.

 아이템에는 다음 코드의 결과와
같이 A, B, C, D등

 아이템을 나타내는 마커(marker)
출력된다.

<ol> 태그의 사용법

<!DOCTYPE html>
<html>

<head>
    <title>라면을 끓이는 순서</title>
</head>

<body>
    <h3>라면을 끓이는 순서</h3>
    <hr>
    <ol type="A">
        <li>물을 끓인다.</li>
        <li>라면과 스프를 넣는다.</li>
        <li>3~5분 정도 더 끓이고 먹는다.</li>
    </ol>
</body>

</html>

 

<ul> 태그의 사용법

<!DOCTYPE html>
<html>

<head>
    <title>좋아하는 음식</title>
</head>

<body>
    <h3>좋아하는 음식</h3>
    <hr>
    <ul>
        <!-- 종료 태그인 </li> 생략 가능-->
        <li>텐동
        <li>라멘
        <li>기타 맛있는 거 
    </ul>
</body>

</html>

 

중첩 리스트 만들기

 리스트 안에 다른 리스트를
중첩할 수 있다.

 다음 코드는 중첩 리스트를 만든
사례를 보여준다.

<!DOCTYPE html>
<html>

<head>
    <title>텐동 브랜드와 메뉴</title>
</head>

<body>
    <h3>텐동 브랜드와 메뉴</h3>
    <hr>
    <ul>
        <li>텐동
            <ul>
                <li>고슬밥
                <li>쇼유 간장
                <li>덴뿌라(튀김)
            </ul>
        <li>텐동 요츠야
            <ol>
                <li>요츠야텐동</li>
                <li>에비텐쥬</li>
                <li>에비죠텐동</li>
                <li>전복텐동</li>
                <li>토쿠죠텐동</li>
                <li>스페셜텐동</li>
            </ol>
        <li>텐동 쿠지라
            <ol>
                <li>쿠지라텐동</li>
                <li>이카텐동</li>
                <li>에비텐동</li>
                <li>아나고텐동</li>
                <li>특에비텐동</li>
                <li>스페셜텐동</li>
            </ol>
    </ul>
</body>

</html>

 

정의 리스트 만들기

 정의 리스트는 (용어, 설명)을 하나의
아이템으로 나열하는 리스트이다.

 정의 리스트 전체는 <dl>을 사용하며,

 각 아이템에서 용어는 <dt>로,
설명은 <dd>로 표현한다.

<dl>
    <dt>용어</dt>
    <dd>설명</dd>
</dl>

 이때 </dt>와 </dd>는 모두
생략 가능하다.

<!DOCTYPE html>
<html>

<head>
    <title>텐동 브랜드와 메뉴</title>
</head>

<body>
    <h3>텐동 브랜드와 메뉴</h3>
    <hr>
    <dl>
        <dt><strong>요츠야 텐동</strong></dt>
        <dd>새우 2마리, 오징어, 연근, 단호박, 표고버섯, 꽈리고추</dd>
        <dt><strong>쿠지라 텐동</strong>
        <dd>새우 2마리, 오징어, 가지, 연근, 꽈리고추, 김
        <dt><strong>고미텐동</strong>
        <dd>새우 2마리, 한치, 온센계란, 계절야채
    </dl>
</body>

</html>

 

표 만들기, <table>

 HTML5에서 다음과 같이 태그들을
함께 이용하여 표를 작성할 수 있으며,

 표를 작성한 사례와 표를 구성하는
각 요소를 대비하여 보여주겠다.

<table>: 표 전체를 담는 컨테이너
<caption>: 표 제목
<thead>: 헤딩 셀 그룹
<tbody>: 데이터 셀 그룹
<tfoot>: 바닥 셀 그룹
<tr>: 행. 여러 개의 <td>와 <th> 포함
<td>: 제목(헤딩) 셀
<th>: 데이터 셀

 

표 전체 구성

 표는 위 그림에 보이듯이 제목,
헤드, 바디, 바닥으로 구성되며,

 전형적인 모양은 다음과 같다.

<table>
    <caption>표제목</caption>
    <thead>...</thead>
    <tfoot>...</tfoot>
    <tbody>...</tbody>
</table>

 <caption>은 표의 제목을
나타내는 태그로,

 <table>에 반드시 첫 번째로
작성되어야 한다.

 

행과 열 만들기

 표는 <tr> 태그를 이용하여
행 단위로 표현하며,

 헤딩(제목) 정보를 가진 셀은 <th>로,
데이터 정보 셀은 <td>로 표현한다.

 위 그림의 표의 일부분을 구현한
예를 들면 다음과 같다.

 <thead>, <tbody>, <tfoot>에는
여러 개의 <tr> 태그로

 여러 행을 만들 수 있다.

<thead>
    <tr><th>이름</th><th>HTML</th><th>CSS</th></tr>
</thead>
<tbody>
    <tr><td>학생1</td><td>80</td><td>70</td></tr>
    <tr>...</tr>
</tbody>

 

기본 표 만들기

<!DOCTYPE html>
<html>
    <head>
        <title>기본 테이블 만들기</title>
    </head>
    <body>
        <h3>기본 구조를 가진 표</h3>
        <hr>
        <!--1픽셀 테두리. 5장의 CSS3로 다루는 것이 바람직함.-->
        <table border="1">
            <caption>1학기 성적</caption>
            <thead>
                <tr><th>이름</th><th>HTML</th><th>CSS</th></tr>
            </thead>
            <tfoot>
                <tr><th>합</th><th>225</th><th>230</th></tr>
            </tfoot>
            <tbody>
                <tr><td>학생1</td><td>80</td><td>70</td></tr>
                <tr><td>학생2</td><td>95</td><td>99</td></tr>
                <tr><td>학생3</td><td>40</td><td>61</td></tr>
            </tbody>
        </table>
    </body>
</html>

 

이미지를 가지는 표 만들기

<!DOCTYPE html>
<html>
    <head>
        <title>기본 테이블 만들기</title>
    </head>
    <body>
        <h3>기본 구조를 가진 표</h3>
        <hr>
        <!--디폴트 굵기(0)로 하여 테두리 제거. 굵기 조절은 CSS로 하는 것이 바람직-->
        <table>
            <caption>페페</caption>
            <tbody>
                <tr>
                    <td><img src="pepe1.png"></td>
                    <td><img src="pepe2.png"></td>
                    <td><img src="pepe3.png"></td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

표 만들 때 팁

 <caption>, <thead>, <tbody>,
<tfoot> 태그를 사용하지 않고

 <tr>로만 표를 만드는 경우가 있는데,
바람직하지 않다.

 왜냐하면 검색 엔진은 표의 의미
(시멘틱)를 파악하기 위해,

 <caption>, <thead>, <tbody>,
<tfoot> 태그를 찾기 때문이다.

 또한 <tfoot>은 <tbody> 전에
나오는 것이 좋다.

 웹 페이지가 프린트될 때 <tbody>에
들어있는 내용이 길어

 여러 페이지에 걸쳐지게 될 때,

 헤드와 바닥을 각 페이지마다
위아래에 출력하기 위함이다.


참고 및 출처

명품 HTML5+CSS3+Javascript 웹 프로그래밍
국내도서
저자 : 황기태
출판 : 생능출판(생능출판사) 2017.01.16
상세보기