본문 바로가기
HTML CSS

[HTML] Chapter 2. HTML 기초 - 태그

by nyeoo 2023. 12. 11.

⚠️ 파일 생성시 유의사항 : WebContent 폴더 안의 Web-INF 공간은 클라이언트는 접근할 수 없게 이루어져 있으며, 서버쪽에서는 접근이 가능함. 비유하자면, 자바에서 private와 유사함. 따라서, 파일을 생성할 때, WEB-INF와 같이 WebContent 내부 다른 폴더에 생성하지 않고, WebContent 바로 아래에 생성할 것. 파일을 WEB-INF에 생성하면 404 Error 가 발생 ( 400번대 에러 - 클라이언트측 에러 / 500번대 에러 - 서버측 에러)

  • HTML의 태그, 엘리먼트들은 대소문자를 구분하지 않지만 소문자 사용이 바람직함
  • html 에서는 java 와 달리 { } 대신 들여쓰기로 영역을 구분함
  • 자바처럼 컴파일되고 실행되는 형태가 아니므로 중간에 띄어쓰기를 없애는 것이 리소스 관리 차원에서 좋음

1. 제목 태그

<h1></h1> ~ <h6></h6>

  • h1 ~ h6제목을 표현할 때 사용 (숫자가 늘어갈수록 더 작은 개념의 제목을 표현. 여섯단계 이외의 단계는 존재하지 않음)
  • 더 작은 제목이라 함은 보여지는 크기도 포함하고 있지만 실무적으로 웹 표준을 근거로 사용할 때에는 의미를 담아 사용해야 함

2. 영역 / 문단 태그

<br> or <br/>        <!-- 개행(단독) -->
<p></p>                <!-- 문단 구성 -->
<div></div>            <!-- 영역 -->
<span></span>        <!-- 문장의 일부 단어나 문장을 특별한 형태로 처리(css style 적용 등)할 때 사용 -->

3. 목록 태그

· 순서 있는 목록

<ol>
    <li>순서</li>
    <li>있는</li>
    <li>목록</li>
</ol>

 

· 순서 없는 목록

<ul>
    <li>순서</li>
    <li>없는</li>
    <li>목록</li>
</ul>

4. 데이터 입력 관련 태그

  • <form></form>
  • 웹 페이지에서의 입력 양식을 의미하며, 데이터 전송페이지 요청하는 용도로 사용

<input> 태그 예시

<div>
    <form>
        회원아이디
        <input type="text" name="name" size="20" maxlength="10" placeholder="아이디">
        <!-- 열글자를 넘어서게 데이터 입력 불가 -->
        패스워드
        <input type="password" name="pwd" size="10" maxlength="8" placeholder="8~12 글자">
        <!-- 패스워드에 입력한 글자는 블라인드 처리되어 나온다. -->

        <input type="button" value="결과"> <input type="reset" value="취소">
        <!-- 리셋은 별도로 스크립트 처리를 하지 않더라도 취소 버튼을 누르면 form 안에 있는 내용을 지울 수 있음. 처음 요청받은 상태로 되돌리는 기능 -->
    </form>
</div>

 

<textarea> 태그 예시

<div>
    <form>
        <!-- 많은 내용을 기재할 수 있는 엘리먼트. 태그 사이의 공백 문자 인식 엔터키 입력을 통한 개행처리 --> 
        <textarea rows="10" cole="50">
        텍
        스
        트
        </textarea>
    </form>
</div>
<!-- 입력컨트롤의 대부분은 input 키워드와 관련있지만 textarea는 input이 필요없고 크기를 지정할 수 있음 -->
<!-- textarea에는 value속성이 존재하지 않는다. -->

 

<form action="" method=""> / submit 방법 (<input> 태그 / <button></button> 태그)

<div>  
    <form action="http://localhost:3306/WebApp01/Test022.html">
        *이름
        <input type="text" name="name" size="15" maxlength="10">
        *이메일
        <input type="text" name="email" size="15" maxlength="20">
        *하고싶은 말
        <textarea rows="10" cols="50" name="field"></textarea>

        <!-- ① -->
        <input type="submit" value="전송하기" name="submitBtn">
        <!-- ② -->
        <button>전송하기</button>
        <button type="submit">전송하기</button>
    </form>
</div>

5. 수평선, 공백, 글꼴크기, 색상(사용X)

⚠️ 스타일을 html에서 제어하는 것은 바람직하지 않음

<div>
    <!-- size : 수평선의 두께 조절 -->
    <hr size="20" color="red">

    <!-- 음영선이 없는 수평선 -->
    <hr size="2" noshade="noshade">

    <!-- 수평선의 수평 길이 설정 -->
    <hr size="5" width="400">

    <!-- 수평선의 정렬 -->
    <hr size="5" width="50%" align="left">
    <hr size="7" width="50%" align="right">
    <hr size="9" width="50%" align="center">
    <hr size="9" width="50%">
    <!-- 사이즈를 숫자값으로 주면 그 길이값으로 고정되지만, %로 주면 브라우저 창의 크기에 따라 변화함. align을 지정하지 않으면 디폴트값은 center -->
</div>
<div>
    공백                                  공백
    <!-- 위 공백은 의미 없음 -->

    공백 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 공백<br>
    <!-- &nbsp; 가 공백 하나이며 공백을 여러개 만들고 싶으면 이어야 함 -->
</div>
<div>
    <font size="1">텍스트</font>
    <font size="2">텍스트</font>
    <font size="3">텍스트</font>
    <font size="4">텍스트</font>
    <font size="5">텍스트</font>
    <font size="6">텍스트</font>
    <font size="7">텍스트</font>
    <!-- 숫자가 커지면 커질수록 사이즈가 커지며, 최대로 지원하는 사이즈는 7 -->

    <font size="4" color="green">텍스트</font><br>
    <font size="4" color="#00ff00">텍스트</font><br>
    <font size="4" color="red" face="궁서체">텍스트</font>
</div>

6. 기타 글꼴 꾸미는 태그(사용X)

<div>
    <b>글자를 굵게(진하게) 설정</b>

    <i>이텔릭체로 설정</i>

    <u>밑줄 긋기</u>

    <tt>타이프체로 설정</tt>

    <small>현재 글자 크기보다 한 단계 줄이기</small>

    <big>현재 글자 크기보다 한 단계 키우기</big>

    <strong>글자 강조</strong>

    <s>취소선</s>

    <em>강조하기, 글자 비스듬히 출력</em>

    아래 첨자 테스트<sub>아래첨자</sub>

    위 첨자 테스트<sup>위첨자</sup>
</div>

7. pre 태그, xmp 태그

  • <pre></pre> : pre 태그 안에 들어있는 내용은 띄어쓰기개행이 모두 적용됨
  • <xmp></xmp> : xmp 태그는 문서상 띄어쓰기, 개행에 더해서 태그 자체도 다 보여줌

8. 이미지 태그

<div>
    <img src="images/img_02.gif">
    <img src="images/img_02.gif" width="100">
    <img src="images/img_02.gif" height="50">
    <!-- 넓이 또는 속성만 지정할 때 종횡비가 깨지지 않는 상태에서 이미지의 전체적인 크기가 변경됨 -->

    <img src="images/img_02.gif" width="200" height="100">
    <!-- 비율이 깨짐 -->

    <img alt="" src="images/img_02.gif" width="100" border="10"
    vspace="200" hspace="100" align="top">위 아래 정렬 실습
    <!-- vspace : 이미지 상하에 픽셀만큼 여백 -->
    <!-- hspace : 이미지 좌우에 픽셀만큼 여백 -->
    <!-- align : 정렬 -->
</div>

9. 하이퍼링크 태그

  • 절대경로 : 루트부터 시작하는 경로(하드디스크부터)
  • 상대경로 : 현재 해당되는 파일의 위치를 기준으로 하는 경로
<a href="http://localhost:3306/WebApp01/Test011_1.html">절대경로 지정 방식</a>

<a href="./Test011_1.html">상대경로 지정 방식1</a>
<a href="Test011_1.html">상대경로 지정 방식2</a>
<a id="top">책갈피 위치</a>
<a href="#top">클릭시 책갈피 위치로 이동</a>

10. 표 (테이블) 생성 태그

① 활용 예시

<!-- th : 컬럼명, td : 컬럼에 속하는 요소들 -->
<!-- rowspan : 위 아래(행) 병합 -->
<!-- colspan : 좌우(컬럼) 병합 -->

<!-- CSS 를 통해 관리해야 할 속성들 -->
<!-- <table border="10" background="images/img_03.jpg" cellpadding="20" cellspacing="30"> -->
<table border="1">
    <tr>
        <th colspan="2">강남구</th>
        <th colspan="4">노원구</th>
    </tr>
    <tr>
        <td>역삼동</td>
        <td>논현동</td>
        <td>상계동</td>
        <td>중계동</td>
        <td>하계동</td>
        <td>월계동</td>
    </tr>
</table>

 

② 활용 예시

<table border="1">
    <tr>
        <th rowspan="2">노원구</th>
        <td>상계동</td>
    </tr>
    <tr>
        <td>역삼동</td>
    </tr>
    <tr>
        <th rowspan="2">강남구</th>
        <td>역삼동</td>
    </tr>
    <tr>
        <td>논현동</td>
    </tr>
</table>

 

① 결과 화면

 

② 결과 화면

11. 움직이는 태그

<div>
    <marquee>기본적인 방향 왼쪽으로 이동</marquee>
    <marquee behavior="alternate">좌우 왕복 이동</marquee>
    <marquee direction="right">오른쪽으로 이동</marquee>
    <marquee direction="up">위쪽으로 이동</marquee>
</div>

<div>
    <h2>속도 조절 : scrollamount</h2>
    <marquee behavior="alternate" scrollamount="100">
        <img alt="" src="images/img_04.gif">
    </marquee>
</div>

<div>
    <h2>속도 조절 : scrolldelay</h2>
    <manequee behavior="alternate" scrolldelay="100">
        <img alt="" src="images/img_04.gif">
    </manequee>
</div>

<div>
    <h2>위아래로 움직이며 옆으로 이동</h2>
    <marquee>
        <marquee direction="down" behavior="alternate" height="100">
            가나다라
        </marquee>
    </marquee>
</div>

12. meta 태그

<!-- 시각적으로 보여지거나 하는 것은 아님. 문서에 대한 정보를 기술하는 태그 -->

<meta name="keywords" content="html,연습,웹,예제,태그,속성">
<!-- 문서의 핵심 키워드가 있다면 찾아보기 편리함 → meta태그 사용 -->
<meta name="discription" content="html 연습 페이지입니다.">
<meta name="author" content="nyeoo">
<meta name="generator" content="eclipse">

<meta http-equiv="refresh" content="5; url=http://www.naver.com">
<!-- 5;의 뜻은 5초의 간격을 두고 리프레쉬하라는 의미. 실행하면 5초 후 이동함 -->

13. 체크박스 태그

<div>
    <form>
        <p>질문 1) 오늘 점심으로 먹은 메뉴는?</p>

        <label><input type="checkbox" name="foodCheck1" value="code1">밥</label>
        <!-- 라벨이라는 태그로 감싸면 텍스트를 클릭해도 체크박스가 선택 -->
        <input type="checkbox" name="foodCheck1" value="code2" id="label2">미역국
        <input type="checkbox" name="foodCheck1">달걀말이
        <input type="checkbox" name="foodCheck1">장조림
        <input type="checkbox" name="foodCheck1">김
        <input type="checkbox" name="foodCheck1">김치
        <input type="checkbox" name="foodCheck1">멸치볶음

        <!-- 하나의 항목이 답이 여러개이므로 모두 같은 name 속성을 가져야함
        체크박스에 체크하는것과 연관을 지어주기 위해서는 value 속성이 필요. value 속성값은 코드화 시켜주는 것이 일반적-->

        <p>질문 2) 오늘 저녁으로 먹을 메뉴는?</p>

        <input type="checkbox" name="foodcheck2">밥
        <input type="checkbox" name="foodcheck2"><label for="label2">미역국</label>
        <!-- 질문 1의 미역국 id와 연결해주면, 질문 2의 미역국 텍스트를 클릭했을 때 질문 1의 미역국의 체크박스가 선택됨-->
        <input type="checkbox" name="foodcheck2">달걀말이
        <input type="checkbox" name="foodcheck2">장조림
        <input type="checkbox" name="foodcheck2">김
        <input type="checkbox" name="foodcheck2">김치
        <input type="checkbox" name="foodcheck2">멸치볶음
    </form>
</div>

14. 라디오 태그

<div>
    <form>
        <p>질문) 당신의 성별은?</p>

        <label>
        <input type="radio" name="gender" value="female" checked="checked">여자
        </label>

        <input type="radio" name="gender" value="male" id="m">
        <label for="m">남자</label>
        <!-- 라디오 컨트롤은 보통 하나만 선택하는 방식으로 구현함. 즉 동일한 name 속성을 보유해야 함-->
        <!-- checked 속성을 넣으면 디폴트로 선택됨. 다른 항목을 클릭해야 해제 가능-->
    </form>
</div>

15. 셀렉트 태그 (드롭다운 리스트)

<div>
    <form>
        <p>당신이 가장 좋아하는 종목은?</p>
        <select name="selectSport" size="3" multiple>
        <!-- size 속성 : 드롭다운 메뉴에서 한 번에 보일 옵션 개수 지정. 지정하지 않을 시 기본값은 1, multiple 속성이 명시되어 있다면 4 -->
        <!-- multiple 속성으로 다중 선택이 가능 (ctrl + 클릭) -->
        <!-- 선택하세요 옵션을 넣어서 사람들이 default 값을 선택하는 것을 방지가능. -->
            <option>-- 선택하세요 --</option>
            <option value="val1">야구</option>
            <option value="val2">축구</option>
            <option value="val3">배구</option>
            <option value="val4">농구</option>
        </select>

        <p>당신의 직책은?</p>>
        <select name="selectJikwi">
            <option value="1">회장</option>
            <option value="2">사장</option>
            <option value="3">부장</option>
            <option value="4">과장</option>
            <option value="5">대리</option>
            <option value="6" selected="selected">사원</option>
            <!-- 회사에서 사원 수가 가장 많다면 selected 속성으로 default 값을 사원으로 설정 가능 -->
            <option value="7">인턴</option>
        </select>
    <form>
<div>

'HTML CSS' 카테고리의 다른 글

[HTML / CSS] Chapter 4. Emmet(에밋)  (0) 2024.02.15
[CSS] Chapter 3. CSS 선택자(Selector) 및 선언 방법  (1) 2023.12.17
[HTML] Chapter 1. HTML 개요  (0) 2023.12.11