본문 바로가기

클라이언트/HTML
HTML 문법

<!-- HTML, Hyper Text Markup Language -->

    - 하이퍼텍스트 마크업 언어
    - 프로그래밍 언어 X
    - 프레젠테이션 언어 > 무엇인가를 표현하는 기능을 가지는 언어
    
    - Hyper Test > 링크
    
    - Markup Langauge > 언어 표기법 : <명령어>
        ~ SGML > 모든 마크업 언어의 시조
        ~ HTML > 표현 언어
        ~ XML > eXtensible Markup Language > 데이터 통신 or 저장(CSV)
        - XHTML > XML + HTML     
    
    
<!-- HTML 주관 단체 -->

    - W3C, World WIde Web Consortium
    - https://w3.org
    - HTML 1.0 ~ HTML 5
    - HTML 4.01, XHTML 1.0, HTML5
        ~ HTML 4.01: 가장 대중화된 버전(웹을 활성화시킴) 
        ~ XHTML 1.0: XML + HTML > 문법 강력하게 준수 
        ~ HTML5: 2014년

<!-- HTML 문서 확장자 -->
    - *.html
    - *.htm       
 
 <!-- Context Root Path★★★★★-->   
    - 웹서버가 가지는 콘텐츠의 최상위 폴더


<!-- HTML 언어 구성 요소 -->
 
    1. 태그(Tag), 엘리먼트(Element)
     
    2. 속성(Attribute)
        
    3. 텍스트(PCDATA)
        
    4. 엔티티(Entity)
    
    5. 주석(Comment)

    6. 선언문(Declaration)

    7. 외부 요소

    8. 기타


//태그(Tag), 엘리먼트(Element)
        - 예약어(명령어)를 <>로 묶어놓은 요소
        - ★★★용도에 맞는 것을 사용해야 한다.
        
        - 출력될 웹페이지의 골격 형성
            a. 레이아웃 형성
            b. 요소를 배치
            c. 콘텐츠를 출력
            
        - 태그 표현 방식
            a. <태그명>내용물</태그명>
                - 쌍태그
                - <태그명>: 시작태그
                - </태그명>: 끝태그
                - 영역을 가지는 태그
                
            b. <태그명>, <태그명 />, <태그명></태그명>
                - 단독태그
                - 빈태그(Empty tag)
                - 영역을 가지지 않는 태그
                
        - 태그 내용물 형식, Content Type
            a. 자식 태그
                - 또다른 태그를 내용물로 가진다.
                - 문자열을 직접 가질 수 없다.
                ~ <html>
                
            b. PCDATA
                - Parsed Character Data > 파싱 가능한 문자열
                - 문자열을 내용물로 가진다.
                - 태그를 내용물로 가질 수 없다.
                ~ <title>
            
            c. Empty
                - 아무것도 가지지 않는다.> 빈 태그, 단독 태그
                
            d. Mixed
                - 자식으로 태그와 문자열이 모두 올 수 있다.
                - 혼합형 
                - a + b + c
                - HTML 태그의 대부분이 혼합형이다. 

- 태그 중첩(Nesting Tags)이 가능하다.

<h1> Hello, <i>HTML</i> </h1>

// 속성, Attribute

- 태그명 뒤에 공백으로 구분하여 이름="값"을 넣어준다. (이름="값"에서 공백은 들어갈 수 없다.)

<h1 id="title"> Hello, HTML </h1>

<h1 id="title" class="test"> Hello, HTML </h1>


- 종류에 따라 어느 태그에서나 사용되는 속성도 있고, 특정 태그에서만 사용되는 속성도 있다.

- 필수 속성도 있고, 선택적인 속성도 있다.

- 태그의 성질을 정의하는 요소
        - 태그가 가지는 데이터의 한 종류
        
        - 표기법
            a. <시작태그 속성명="값"></끝태그>
            b. <단독태그 속성명="값">
            c. <시작태그 속성명="값" {속성명="값"}></끝태그>
            
            d. <시작태그 속성명="값"></끝태그> : 사용 O
            e. <시작태그 속성명='값'></끝태그> : 사용 O
            f. <시작태그 속성명=값></끝태그>   : 절대 사용 X 

- HTML 속성 유형
            1. 숫자(단위 없음)
                a. 픽셀(px) > 화소 > 화상(이미지)를 구성하는 최소 단위 > 단일 색상을 가지는 점 1개
                b. 글자수
            2. 숫자(단위: %)
                - 부모 태그 영역을 100으로 하는 상대 단위★★★★
            3. 열거형 
                - 정해져 있는 속성값 중 하나를 선택해서 사용
            4. 색상
                - 색상명, RGB
            5. 플래그형(boolean)
                - 속성명 기재(true), 미기재(false)
            6. 문자열
                - 자유롭게 기재
            7. URL
                - 상대경로, 절대경로, 외부경로


// 텍스트(PCDATA)
        - 태그가 가지는 데이터의 한 종류
        - 용도: 화면에 출력하는 데이터   


// 엔티티(Entity)
        - 브라우저와 미리 약속된 표현 
        - 이 표현을 소스에 작성하면 브라우저는 이 표현을 그대로 출력하지 않고, 미리 약속된 표현으로 바꾸어서 출력한다.
        - 치환 명령어
        - Built-in Entity
        - &엔티티명;
        ~ &nbsp; 
        ~ &lt;  > less than
        ~ &gt;  > greater than
        - &#문자코드;


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex03_tag</title>
</head>
<body>
    
    <div> 이곳이 PCDATA 영역입니다. 브라우저가 문법을 검사하는 영역입니다.
    그래서 예약어가 있으면 해석을 한다. 오늘 &lt;br&gt;태그를 배웠습니다. &lt;br&gt;태그는 개행문자 역할을 합니다.</div>
    
    <div>&copy; Copyright 2023 All rights reserved</div>
    
    <div>&#65;</div>
    
</body>
</html>

//주석, Comment Tags

- 화면에 노출되지 않는 부연 설명

<!-- 내용 -->

// 공백 문자, Whitespace

    - 편집기 상의 엔터, 탭, 스페이스
    - 브라우저가 페이지 소스 상의(종류와 상관없이) 1개 이상의 연속된 공백 문자들을 단 1개의 공백 문자로 치환해서 화면에 출력한다.
    
    - 공백 문자 처리 방법
        1. 스페이스 표현
            - 공백 2글자 > 엔티티 1개
            - &표현;
                ~ &nbsp; 
                    - 화면에 출력될 떄 공백 1개로 바꿔서 출력해라.
                    - non-break space    
    
        2. 탭 표현
            - 표현 방법 없음
            - 브라우저 > 편집기 X > 탭 개념 자체가 없음            
            
        3. 개행문자 표현
            - <br> 태그 사용 > \r\n 역할
            - line break


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>ex02_whitespace</title>
	</head>
	<body>
	   하나&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;둘                          셋 
	   <br>
	   넷
	   <br>
	   <br>
	   <br>
	   <br>
	   <br>	   
	   다섯
	   
	   HTML4.01 > XHTML 1.0 > (이전 버전 호환성 X) > XHTML 2.0(X) - 망함..
	                          (이전 버전 호환성 X) > HTML 5 
	    
	   
	</body>
</html>

//기본 문서 구조, HTML Documents

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charse="UTF-8">
    <title>HTML 문서의 기본 구조</title>
  </head>
  <body>
    <h1>Hello, HTML</h1>
  </body>
</html>


- 태그들의 트리 구조로 되어 있다.(계층 구조)★★★★
    
    <html>
        - 문서 전체를 감싸는 역할
        - 루트 태그
        - 스스로 하는 일은 없다. > 컨테이너 역할        
    
    <head>
        - 문서의 머릿말 역할
        - 문서 내부 정보 기술
        - 브라우저에게 전달할 내용 > 화면에 출력(X)
        
        1. <meta>
            - 페이지에 대한 여러 가지 정보를 기술
            
        2. <title>
            - 문서 제목(제목 표시줄에 출력)
            a. 문서의 제목으로 사용
            b. 검색 엔진의 수집 대상 > 검색 결과의 제목으로 사용
            c. 북마크 제목으로 사용                    
        
    <body>
        - 브라우저에 출력될 내용을 담는 역할
        - 사람이 봐야 할 내용을 작성    
        - 화면에 출력되는 모든 내용을 가지는 태그
        - 혼합형 > 태그, 문자열
        
        - 속성
            1. bgcolor
                - background color
                - 문서 배경색
                
            2. background
                - background image
                - 문서 배경이미지


        - HTML 색상 표현 방법
            - 색 배합 > 참조 사이트(웹 색 조합)

            1. 색상명
                - Named Color, Well-known Color
                - 미리 약속된 몇 가지 색상명을 사용(140가지)

            2. RGB
                - Red + Green + Blue
                - 각 색상의 단계 > 256단계(0~255)
                - 256 x 256x 256 = 16,777,216
                - #RRGGBB
                - #000000(검정색) ~ #FFFFFF(흰색)


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>ex05_body</title>
</head>
<!-- <body bgcolor="LightPink"> -->
<body bgcolor="#FEB5C5">
</body>
</html>

        - HTML 자원 경로 표현 방법
            - . : 현재 문서가 포함된 폴더 > 현재 폴더
            - .. : 부모 폴더
            - 이름 : 자식 폴더
            - 자바 구분자: \
            - 웹 구분자: /            
            
            1. 상대경로
                - 현재 페이지가 있는 폴더를 기준으로 표현하는 방법
                - . : 현재 폴더
                ~ background="./images/PC.png"
                ~ background="images/PC.png"
            
            2. 절대 경로
                - 고정된 기준점을 사용해서 표현하는 방법
                - '/'으로 시작
                ~ background="/client/html/images/PC.png"
                
            3. 로컬 경로
                - 드라이브명으로 시작하는 방법
                - 현재는 대부분의 브라우저가 지원하지 않음. > 나는 보이지만 다른 사람은 안 보임.. > 사용 불가!
                ~ background="C:\Users\user\Desktop\class\code\client\ClientTest\src\main\webapp\html\images\PC.png"
                
            4. 외부 경로
                - 다른 사이트의 자원 주소를 참조
                - 내 것도 내 것, 남의 것도 내 것!
                - 관리 불가능
                ~ background="https://t1.daumcdn.net/daumtop_chanel/op/20200723055344399.png"


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>ex05_body</title>
</head>
<body background="images/PC.png">
<!-- <body background="/client/html/images/PC.png"> -->
<!-- <body background="https://t1.daumcdn.net/daumtop_chanel/op/20200723055344399.png"> -->
    안뇽
</body>
</html>

'클라이언트 > HTML' 카테고리의 다른 글

HTML 블록, 인라인  (0) 2023.03.02
HTML 시멘틱 마크업  (0) 2023.03.01
HTML 콘텐츠 모델  (0) 2023.03.01
HTML 태그의 종류  (0) 2023.02.28
Visual Studio Code 프로그램 설치 및 기본 기능 익히기  (0) 2023.02.26