[HTML] HTML의 다른 여러가지 태그들
지난 시간에는 HTML의 기본 태그에 대해 배웠고, 이번에는 다른 태그들에 대해 알아보겠다.
**`<div>` 태그:**
`<div>` 태그는 페이지의 구획을 정의하고 콘텐츠를 그룹화하는 데 사용된다. 어떠한 형태의 콘텐츠도 배치할 수 있으며, 의미적으로 연관이 없어도 된다. 주로 많은 요소가 동일한 형식을 가져야 할 때 사용된다. 브라우저는 `<div>` 태그 앞뒤에 줄 바꿈을 삽입한다.
```html
<div>
<h1>This is a heading in a div element</h1>
<p>This is some text in a div element.</p>
</div>
```
**`<section>` 및 `<article>` 태그:**
`<section>` 태그는 콘텐츠를 의미적으로 그룹화 하는 데 사용되며, 주로 그룹화된 콘텐츠에 헤딩 태그가 사용된다. `<article>` 태그는 더 구체적으로, 독립적이고 의미 있는 콘텐츠를 그룹화하는 데 사용된다.
```html
<section>
<h1>Section 1</h1>
<p>This is text related to section 1.</p>
</section>
<article>
<h1>Article 1</h1>
<p>This paragraph is related only to article one and is meaningful on its own.</p>
</article>
```
**`<nav>` 태그:**
`<nav>` 태그는 내비게이션 요소들을 그룹화하는 데 사용된다. 웹페이지 상단에 있는 내비게이션 바와 같이 페이지 간 이동에 사용되는 요소들을 `<nav>` 안에 그룹화할 수 있다.
```html
<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
```
**`<audio>` 및 `<canvas>` 요소:**
`<audio>` 요소는 음악이나 팟캐스트 등 소리 콘텐츠를 임베드하는 데 사용된다. `<canvas>` 요소는 스크립트를 사용하여 그래픽을 그리는 데에 활용된다.
```html
<audio>
<source src="soundtrack.mp3" type="audio/mpeg">
<source src="soundtrack.ogg" type="audio/ogg">
Your browser does not support the audio formats provided.
</audio>
<canvas>
Your browser does not support the canvas tag.
</canvas>
<script>
var canvas = document.getElementsByTagName("canvas")[0];
var context = canvas.getContext("2d");
context.fillRect(0, 0, 100, 100);
</script>
```
**`<embed>` 및 `<track>` 요소:**
`<embed>` 요소는 외부 리소스를 웹 페이지에 임베드하는 데 사용된다. `<track>` 요소는 `<audio>` 및 `<video>` 요소에 대한 텍스트 트랙(자막 등)을 정의하는 데 사용된다.
```html
<embed type="text/html" src="another_webpage.html">
<video>
<source src="common_html_elements.mp4" type="video/mp4">
<track src="english_subtitles.vtt" kind="subtitles" srclang="en" label="English">
<track src="spanish_subtitles.vtt" kind="subtitles" srclang="es" label="Spanish">
</video>
```
**'<fieldset>' 및 '<legend>' 요소:**
<!DOCTYPE html>
<html>
<body>
<h1>The fieldset element</h1>
<form>
<fieldset name="personal_details">
<legend>Personal Details</legend>
<label for="fname">First name:</label>
<input type="text" id="fname" name="fname"><br>
<label for="lname">Last name:</label>
<input type="text" id="lname" name="lname"><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email"><br>
<label for="phone">Phone Number:</label>
<input type="tel" id="phone" name="phone"><br>
</fieldset>
<br>
<fieldset name="professional_details">
<legend>Professional Details</legend>
<label for="occupation">Occupation:</label>
<input type="text" id="occupation" name="occupation"><br>
<label for="company">Company:</label>
<input type="text" id="company" name="company"><br>
<label for="start">Start Date:</label>
<input type="date" id="start" name="start"><br>
<label for="end">End Date:</label>
<input type="date" id="end" name="end"><br>
</fieldset>
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
1. **`<fieldset>` 태그:**
- `<fieldset>` 태그는 여러 입력 요소를 그룹화할 때 사용된다. 일반적으로 이 태그는 폼 안에 있는 여러 입력 필드를 하나의 논리적 그룹으로 묶을 때 사용된다.
- 이 그룹은 보통 선(border)으로 둘러싸여 있어 시각적으로 구분된다.
- `<fieldset>`은 주로 비슷한 주제 또는 목적을 가진 입력 요소들을 그룹화하여 사용자에게 폼의 구조를 명확하게 전달하는 데에 활용된다.
2. **`<legend>` 태그:**
- `<legend>` 태그는 `<fieldset>`의 제목을 정의한다. 즉, `<fieldset>`로 그룹화된 입력 필드들의 목적이나 주제를 설명하는 텍스트를 제공한다.
- `<legend>`는 `<fieldset>`의 첫 번째 자식으로 와야 하며, `<fieldset>`의 시작 태그 바로 다음에 위치해야 한다.
아래는 위 코드를 웹페이지에서 봤을때의 모습이다
근데 UI들은 너무 못생겼다... 조금 더 이쁘게 할 수 있는 방법은 없을까? 이럴때 필요한게 CSS이다. 다음에는 CSS에 대해 따로 설명하겠다!