1. <!DOCTYPE html>

<!DOCTYPE html>

- HTML 문서가 HTML5 표준을 따름을 선언하며 브라우저가 표준 모드로 렌더링하도록 유도한다. 

- 한 번만 써야하며 대소문자 구분을 하지 않는다.

- 과거 HTML4나 XHTML에서는 DOCTYPE 선언이 복잡했지만 HTML5에서는 단순히 <!DOCTYPE html>만쓰면 된다. 

 

 

2. <meta charset="UTF-8">

<meta charset="UTF-8">

- UTF-8은 유니코드 문자 인코딩 방식 중 하나로 전 세계 대부분의 문자를 표현 가능하다.

- 가변 길이 (1~4바이트)로 문자를 저장한다. 

- 브라우저의 인코딩 방식을 지정해 글자가 깨지는 것을 방지한다.  head에 넣어두는 것이 좋다!!

 

 

3. HTML의 요소

<tag> 내용 </tag>

- HTML 요소는 기본적으로 시작 태그, 내용, 끝 태그로 구성된다. 

- Empty elements의 경우 내용도 없고 끝 태그도 없을 수 있다. 이러한 태그들은 단독으로 사용되며 <br> 줄바꿈, <img> 이미지 삽입(alt 속성만 필요하다), <hr> 등이 있다.  

- html의 요소들은 nested(중첩)될 수 있다. 대표적인 예로 <html>태그 안에 <head>와 <body>가 들어간다. 중첩된 요소들을 활용해서 더 구조화된 HTML 페이지를 만들 수 있다.  

- html은 대소문자를 구분하지 않아 <p>와 <P>가 똑같이 동작하기는 하지만 일관성과 가독성을 높이기 위해 소문자 사용을 권장한다. 

 

 

4. HTML의 속성

- 아래 예시들처럼 요소들은 attrivutes, 속성들을 포함할 수 있다. 속성들은 요소들에 대한 추가 정보를 나타낼 수 있다.

- 속성들은 start tag에서 정의되어야 하며 이름과 값으로 구성된다. (name = "value")

- 아래 코드의 href, alt 같은 것들은 다 속성이다! 

 


 

HTML의 기본적인 요소들 

 

1. headings

	<h1> heading 1 </h1>
	<h2> heading 2 </h2>
	<h3> heading 3 </h3>
	<h4> heading 4 </h4>
	<h5> heading 5 </h5>
	<h6> heading 6 </h6>

- html의 heading은 <h1>부터 <h6>까지 6단계의 제목 태그가 있고 h1은 가장 크고 중요한 제목, h6은 가장 작고 덜 중요한 제목을 나타낸다.

- heading 요소는 문서의 제목이나 섹션 주제를 나타내는 태그이다. 

- 검색 엔진과 사용자가 페이지의 내용을 이해하고 탐색하는데 도움을 준다. heading을 통해 페이지를 효율적으로 구성하고 검색엔진을 최적화(SEO)할 수 있다. 따라서 단순히 텍스트를 크게 만들거나 굵게 처리하지 않고 heading을 통해 정의하는 것이 좋다. 

- 헤딩 태그의 단계를 통해 페이지의 계층 구조를 명확하게 할 수 있다. 각 페이지에는 하나의 h1만을 사용하는 것이 좋다. 너무 많이 사용하면 SEO( Search Engine Optimization )에 좋지 않다.  

	<h2 style = "font-size : 60px;"> heading 2, font-size : 60px </h2>

- 당연히 heading에서도 style을 통해 여러 스타일 속성들을 지정할 수 있다.  

 

2. Paragraphs

	<p> paragraph 1 </p>
	<p> paragraph 2 </p>
	<p> <strong> paragraph 3 with strong tag </strong></p>

- <p>를 통해 문단을 나타냄. 텍스트를 문단 단위로 묶을 때 사용한다. 

- <p> 태그 안에 들어간 텍스트는 항상! 자동으로 줄바꿈이 되며 문단간에 기본적인 여백(margin)이 들어간다. 

- <p> 태그 안에는 <div>, <h1> 같은 블록 요소를 넣을 수 없다. 

- 문법적으로 <p> 태그 안에는 인라인 요소(<strong>, <span> 등)만 포함할 수 있다. 

- HTML에서 페이지가 정확히 어떻게 표시될 지 예측하기 어렵다. 화면 크기나 브라우저 창 크기에 따라 페이지의 표시 방식이 달라질 수 있다. 큰 화면으로 한 줄로 표시되던 문장이 작은 화면에서 여러 줄에 걸쳐 표시될 수 있고, 페이지 레이아웃이 달라질 수도 있다.

- HTML 코드에서 여러 개의 공백이나 빈 줄을 추가한다고 해서 웹 페이지에서 공백과 빈 줄이 반영되지 않는다. 웹 브라우저는 여러 공백이나 빈 줄을 하나의 공백으로 처리한다.

	<p> paragraph 4 </p>
	<p>         paragraph 5 </p> 
	<p> 
	               paragraph 6           
	               
	</p>

- 따라서 HTML 코드는 내용을 구조화하는 데 주로 사용되고, 실제 디스플레이나 스타일을 설정하려면 CSS로 스타일을 조정하는 것이 필요하다.      

- <hr> 태그: <hr> 태그는 html 페이지에서 주제 구분(thematic break)를 위해 사용되며 내용과 끝태그가 없는 태그(empty tag)이다. 일반적으로 수평선으로 화면에 표시되며 페이지 내에서 콘텐츠를 구분하거나 변경을 정의하는데 사용된다. 

- <br> 태그: <br> 역시 빈 태그이며 줄바꿈에 사용된다. <br>을 사용해 새로운 <p>를 정의하지 않고도 줄을 바꿀 수 있다.

- pre 요소: 미리 포맷된 텍스트(preformatted text)를 정의하는데 사용된다. <pre> 안의 텍스트들은 고정 폭 글꼴(fixed-width font)로 표시되며 (I와 M이 같은 폭을 가짐) 텍스트의 공백과 줄 바꿈이 그대로 유지된다. (Courier와 비슷한 글꼴로 표시됨)

	<pre>
	 paragraph 7
	         paragraph 8
	 
	               paragraph 9          
	               
	</pre>

- 주로 소스 코드나 명령어를 표시할 때 사용된다. 코드 내 들여쓰기나 공백을 그대로 표시할 수 있다. (프로그래밍 코드 or json 데이터를 웹 페이지에서 보여줄 때)

- 정렬된 데이터나 표 형식을 유지해야 하는 텍스트에도 pre를 사용할 수 있다.    

 

 

3. Links

	<a href = "https://driedmin.tistory.com/"> link 1 </a><br>
	<a href = "https://driedmin.tistory.com/" target = "_blank"> link with target blank</a><br>
	<a href = "https://driedmin.tistory.com/" title = "link to tistory"> link with title</a><br>
	<a href = "../imgs/a.jpg" download> download </a><br>
	<a href = "mailto:dried021@gmail.com?subject=제목&body=내용"> mail </a><br>
	<a href = "#section1"> id = section1으로 스크롤 이동</a><br>
	<a href = "https://driedmin.tistory.com/" >
		<img src = "../imgs/b.jpg" alt = "img b" width = "100">
	</a><br>
	<a href = "tel: +821012345678">전화 걸기</a><br>
   	<button onclick = "window.location.href = 'https://driedmin.tistory.com/'"> button to website</button>
	<button onclick = "document.location = '../imgs/b.jpg'"> button to image</button>

- <a> 태그(anchor, 앵커)를 통해 링크(하이퍼링크)를 만들 수 있다. 

- 링크를 통해 웹페이지 간 이동이 가능하고, 특정 파일이나 이메일을 열 수 있다.  

- href(Hypertext REFerence) 속성에서 이동할 URL을 지정하며 a 태그 안의 텍스트를 사용자가 클릭하면 지정한 URL로 이동하게 된다. 

- 편의상 코드 뒤에 <br>을 넣어 줄바꿈을 한다. 

- 상대적인 url로 작성하는게 좋다. 예를 들어 위의 코드에서 img source를 현재 html 파일이 속해있는 파일의 상위 주소의 imgs 폴더의 이미지 파일로 지정했다. 만약 절대적인 주소(예를 들어 C:\Workspace\JSPEx\src\main\webapp\imgs\a.jpg)로 지정했을 경우 html 파일의 경로가 바뀌는 경우 a.jpg를 불러오는 모든 코드를 수정해야 한다. 이처럼 상대적인 url(relative url)을 사용해서 도메인이나 경로가 변경되더라도 링크가 작동할 수 있도록 하는 것이 좋다.  웹사이트를 다른 도메인으로 옮기거나 여러 서버에서 호스팅할 때, 상대 url을 사용하면 도메인이나 호스팅 서버를 변경해도 링크가 유지될 수 있으며 상대 url을 사용하면 긴 도메인 주소를 반복하지 않아도되어 코드가 깔끔하고 관리하기 쉬워진다.      

1. target: taget 속성에서 링크를 여는 방식을 지정할 수 있다. 기본값은 _self이며 현재 창에서 href의 url이 열어진다. 값이_blank일 경우 새 창(새 탭)에서 열어지며 _parent의 경우 부모프레임에서 열어지고 _top의 경우 최상위 프레임에서 열어진다.  _parent와 _top의 경우 여러 프레임으로 나누어진 페이지에서 동작할 수 있다.

2. title로 링크에 마우스를 올렸을 때 툴팁이 표시되게 할 수 있다. 아래 이미지처럼 표시된다. 

3. 상위 폴더에 폴더 imgs가 위치해있고 그 안에 a.jpg라는 파일을 넣어두었다. 클릭하면 이미지가 있는 창으로 이동한다.

4. 메일이 어떻게 뜰까 궁금했는데 이렇게 뜬다.

5. id가 section1인 위치로 이동한다. 링크를 사용해 같은 페이지 안에서도 특정 위치로 이동할 수 있다. (이와 같은 북마크의 경우에는 unique한 값인 id를 활용한다.)

6. 이미지를 클릭해서 링크로 이동할 수도 있다. 이때 alt(alternative text) 속성은 이미지가 표시되지 않을 때 대신 보여줄 텍스트를 의미한다. img 태그에서 반드시 추가하는 것이 좋다!!

- html 기본 링크는 파란색이고 밑줄이 그어져 있으며 클릭했다면 보라색으로 변하며 active link의 경우 빨간색으로 변하지, css를 사용하여 스타일을 변경할 수 있다 .

7. Button: 

b.jpg가 딸기 그림이다

 

- Links의 스타일 변경하기 : 앞서 언급했듯이 CSS를 사용하여 link의 상태 색을 바꿀 수 있다.

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
	<style>
		a:link {
			color : pink;
			background-color : transparent;
			text-decoration : none;
		}
		
		a:visited {
			color : PaleVioletRed;
			background-color : transparent;
			text-decoration: none;
		}
		
		a:hover {
			color: red;
			background-color : transparent;
			text-decoration: underline;
		}
		
		a:active{
			color: yellow;
			background-color : transparent;
			text-decoration: underline;
		}
	</style> 
</head>
<body>
	<a href = https://driedmin.tistory.com/ target = "_blank"> https://driedmin.tistory.com </a><br>
</body>
</html>

- link는 기본, visited는 방문한 것, hover는 마우스를 올렸을 경우, active의 경우 이동하는 동안 반짝 노란색이 된다!

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
	<style>
		a:link, a:visited {
			color : white;
			background-color : pink;
			padding: 15px 25px;
			text-align: center;
			text-decoration : none;
			display : inline-block;
		}

		a:hover, a:active {
			background-color: red;
		}

	</style> 
</head>
<body>
	<a href = https://driedmin.tistory.com/ target = "_blank"> https://driedmin.tistory.com </a><br>
</body>
</html>

- 여기서 a:hover, a:active일 때 스타일 재정의가 일어남. CSS는 상태별로 스타일을 적용하며, 이전 상태의 스타일을 덮어씀.  

 

마우스 커서를 올리면 빨간색이

4. Images

	<img src = "../imgs/b.jpg" alt = "img b"><br>
	<img src = "../imgs/b.jpg" alt = "img b" width = "100">
	<img src = "../imgs/b.jpg" alt = "img b" height = "200">
	<img src = "../imgs/b.jpg" alt = "img b" width = "200" height = "400">

- 위에서 설명한 것처럼 alternative text를 설정할 수 있다.

- 이미지는 웹 페이지에 직접 삽입되는 것이 아니라 사실 웹 페이지에 연결된 형태로 표시됨. 이미지가 웹 페이지의 파일 자체에 포함되는 것이 아니라, 웹 페이지가 이미지를 표시하도록 연결된다. 이미지 파일 자체는 웹 서버나 다른 위치에 별도로 저장되어 있으며 HTML 문서 안에서 src 속성을 사용하여 그 이미지 파일의 경로를 참조한다. 

- 웹 페이지가 로드되면 그 순간 웹 서버로부터 이미지를 가져와 페이지에 삽입하는 것은 브라우저이다. 따라서 이미지가 실제로 웹페이지와 관련하여 같은 위치에 있는지 확인해야 하며, 그렇지 않으면 깨진 링크 아이콘과 대체 텍스트가 표시되게 된다.  

- 대체 텍스트는 screen reader를 통해 읽힌다.

- width와 height만 설정한 경우 가로 세로 비율 유지가 자동으로 되고, 각각 값을 지정한다면 비율을 유지하지 않는다.

- img 태그에 width와 height 속성을 직접 추가해 이미지 크기를 지정할 수 있다. 직관적이지만 반응형웹 디자인에 불편할 수 있고, 스타일 시트에서 크기를 변경할 때  우선순위 문제가 발생할 수 있다.

- CSS를 통해 style 속성으로 이미지 크기를 조정하면 html 코드가 더 깔끔해지고 반응형 디자인을 구현할 수 있다.  

- 절대경로를 표시해 다른 서버나 웹사이트의 이미지도 표시할 수 있다. 

- gif 이미지도 삽입 가능하다. 

 

 

 

 


HTML의 기본적인 속성들

 

1.style

<tagname style = "property: value;">Content</tagname>

- html의 style 속성은 html 요소에 css 스타일을 직접 적용할 때 사용하는 속성이다. 이 속성을 사용해 색상, 글꼴, 크기 등 다양한 스타일을 각 요소에 인라인으로 적용할 수 있다. 

- html 태그 안에서 스타일을 직접 지정할 경우 html 코드와 스타일이 섞이기 때문에 유지 보수에 불편하다. CSS 파일을 활용하는 것이 더 효율적이고 코드가 더 깔끔하다. 

<p style = "color : blue;"> paragrapht 4 with blue color</p>

- color 외에도 font-size, background-color 등의 여러 style 속성이 있으며 세미콜론;을 통해 여러 스타일을 동시에 적용시킬 수 있다. 

background-color  배경색 지정 <body style="background-color:red;"></body>
color 텍스트색 지정 <p style="color:red;">paragraph</p>
font-family 폰트 지정 <p style="font-family:courier;">paragraph</p>
font-size 텍스트 크기 지정 <h1 style="font-size:300%;">heading</h1>
text-align 텍스트 정렬
<p style="text-align:center;">paragraph</p>

 

 

2. lang 

<!DOCTYPE html>
<html lang = "en>
...
</html>

- 웹 페이지의 언어를 선언할 수 있다.

- <html> 태그에 포함되어야 한다. 검색 엔진이 웹 페이지의 언어를 정확하게 인식할 수 있도록 도와주며 브라우저가 페이지의 텍스트나 인터페이스를 올바른 언어로 표시하고, 언어별 맞춤 설정을 적용하는데 도움을 준다. 

- 언어 코드 뒤에 국가 코드를 추가하여 더 명확하게 구분할 수 있다.

- 언어 코드의 예시로는 영어(영국): en-GB, 스페인어(스페인): es-ES, 영어(미국): en-US 등이 있다.  

 

 

3. title

	<a href = "https://driedmin.tistory.com/" title = "link to tistory"> link with title</a><br>

- <a> 태그를 설명할 때 언급한 것처럼 어떤 요소에 마우스를 올렸을 때 title 속성이 정의되어 있다면 title로 정의된 텍스트가 툴팁으로 나타난다. title 속성을 통해 추가적인 정보나 설명을 제공할 수 있다.

-  이 때 툴팁은 기본적으로 브라우저의 스타일에 따라 표시되며, 추가적인 CSS로 스타일을 바꾸는 것은 불가능하다.  

 

 


html에 대한 추가적인 내용

1. ctrl+U키 또는 웹페이지 마우스 우클릭+페이지소스 보기를 통해 HTML 소스 코드를 확인할 수 있다!

    마우스 우클릭+검사로 HTML과 CSS를 모두 확인할 수도 있다.

2. html은 대소문자를 구분하지 않아 <p>와 <P>가 똑같이 동작하기는 하지만 일관성과 가독성을 높이기 위해 소문자 사용을 권장한다.

3. 따옴표 사용 권장: 아래 코드도 동작하기는 하지만 attribute value를 따옴표로 감싸는 것이 좋다. 특히 속성 값에 공백이 있거나 특수 문자가 포함된 경우 HTML 문법 오류가 발생할 수 있기 때문에 따옴표로 감싸야 한다.  

	<a href = https://driedmin.tistory.com/> link 1 </a><br>

 

	<p title = "title with 'single quotes' "> paragrph with title </p>

- 위 코드처럼 속성값에 따옴표가 포함될 경우 다른 종류의 따옴표로 감쌀 수 있다.

 

 

 

~ 위 글의 모든 예제 코드 ~ (CSS 제외)

중간의 <br> 들은 <a> 태그를 통한 페이지 내 이동을 보기 위해서 썼습니다  

더보기
<!DOCTYPE html>
<html lang = "ko">
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
</head>

<body>
	<h1 id = "section1"> heading 1 , id = "section 1" </h1>
	<h2 style = "font-size : 60px;"> heading 2, font-size : 60px </h2>
	<h3> heading 3 </h3>
	<h4> heading 4 </h4>
	<h5> heading 5 </h5>
	<h6> heading 6 </h6>
	
	<p style = "background-color : blue;"> paragraph 1 </p>
	<p style="font-family:courier;"> paragraph 2 </p>
	<p> <strong> paragraph 3 with strong tag </strong></p>
	<p style = "color : blue;"> paragrapht 4 with blue color</p>
	
	<p style="text-align:center;" > paragraph 4 </p>
	<p>         paragraph 5 </p> 
	<p> 
	               paragraph 6           
	               
	</p> 
	
	<br>
	<pre>
	 paragraph 7
	         paragraph 8
	 
	               paragraph 9          
	               
	</pre>
	
	<br><br><br><br><br><br><br><br><br>
	<br><br><br><br><br><br><br><br><br>
	<br><br><br><br><br><br><br><br><br>
	<br><br><br><br><br><br><br><br><br>
	
	<a href = https://driedmin.tistory.com/> link 1 </a><br>
	<a href = "https://driedmin.tistory.com/" target = "_blank"> link with target blank</a><br>
	<a href = "https://driedmin.tistory.com/" title = "link to tistory"> link with title</a><br>
	<a href = "../imgs/a.jpg" download> download </a><br>
	<a href = "mailto:dried021@gmail.com?subject=제목&body=내용"> mail </a><br>
	<a href = "#section1"> id = section1으로 스크롤 이동</a><br>
	<a href = "https://driedmin.tistory.com/" >
		<img src = "../imgs/b.jpg" alt = "img b" width = "100">
	</a><br>
	<a href = "tel: +821012345678">전화 걸기</a><br>
	
	<hr>
	
	<br>
	<img src = "../imgs/b.jpg" alt = "img b"><br>
	<img src = "../imgs/b.jpg" alt = "img b" width = "100">
	<img src = "../imgs/b.jpg" alt = "img b" height = "200">
	<img src = "../imgs/b.jpg" alt = "img b" width = "200" height = "400">
	
	<p title = "title with 'single quotes' "> paragrph with title </p>
</body>
</html>

+ Recent posts