HTML 개요와 핵심 정리
💡 Keyword
- 부모, 자식, 상위(조상), 하위(후손) 요소
- 인라인 요소와 블록 요소
- 핵심 요소
- 전역 속성
1. 부모와 자식 관계
<태그> // 1번
<태그> // 2번
<태그>내용</태그> // 3번
</태그>
</태그>
- 부모 요소(바로 위)
- 2번 요소 기준 1번 요소는 부모 요소
- 3번 요소 기준 2번 요소는 부모 요소
- 자식 요소(바로 아래)
- 1번 요소 기준 2번 요소
- 2번 요소 기준 3번 요소
- 상위(조상) 요소(위으로 모두)
- 3번 요소 기준 1번 요소와 2번 요소
- 하위(후손) 요소(아래로 모두)
- 1번 요소 기준 2번 요소와 3번 요소
2. 글자와 상자
<태그> // 1번
<태그> // 2번
<태그>내용</태그> // 3번
</태그>
</태그>
- 2번 요소 기준 1번 요소는 부모 요소
- 3번 요소 기준 2번 요소는 부모 요소
- 1번 요소 기준 2번 요소
- 2번 요소 기준 3번 요소
- 3번 요소 기준 1번 요소와 2번 요소
- 1번 요소 기준 2번 요소와 3번 요소
요소가 화면에 출력되는 특성으로 크게 2가지로 구분된다.
- 인라인(Inline) 요소: 글자를 만들기 위한 요소들
- 블록(Block) 요소: 상자(레이아웃)를 만들기 위한 요소들
인라인(Inline) 요소
<span>
은 대표적인 인라인 요소이다.- 하나의 글자처럼 취급된다.
- 본질적으로 아무것도 나타내지 않는, 콘텐츠 영역을 설정하는 용도이다.
- 요소가 수평으로 쌓인다.
- 줄 바꿈이 띄어쓰기로 해석이 된다.
- 가로, 세로 모두 포함한 콘텐츠 크기만큼 자동으로 줄어든다.
- 글자를 취급하는 요소이므로 가로, 세로 사이즈를 지정할 수 없다.
- 상하의 여백은 적용되지 않고, 좌우의 여백은 적용된다.
- 인라인 요소의 자식 요소로 블록 요소를 사용할 수 없다.
블록(Block) 요소
<div>
는 대표적인 블록 요소이다.- 본질적으로 아무것도 나타내지 않는, 콘텐츠 영역을 설정하는 용도이다.
- 요소가 수직으로 쌓인다.
- 가로는 부모 요소의 크기만큼 자동으로 늘어나며, 세로는 포함한 콘텐츠 크기만큼 자동으로 줄어든다.
- 가로, 세로 사이즈를 지정할 수 있다.
- 상하좌우 여백을 적용할 수 있다.
- 블록 요소의 자식 요소로 인라인 요소, 블록 요소를 모두 사용할 수 있다.
👉 블록 요소에 비해 인라인 요소는 제약사항이 많다.
3. 핵심 요소 정리
-
<div>
: Division
- 블록 요소
- 특별한 의미가 없는 구분을 위한 요소
-
<h1>~<h6>
: Heading
- 블록 요소
- 제목을 의미하는 요소
-
<p>
: Paragraph
- 블록 요소
- 문장을 의미하는 요소
-
<img>
: Image
- 인라인 요소
- 이미지를 삽입하는 요소
src
, alt
속성
-
<ul>
, <li>
: Unordered List, List Item
- 블록 요소
- 순서가 필요없는 목록의 집합을 의미
-
<a>
: Anchor
- 인라인 요소
- 다른/같은 페이지로 이동하는 하이퍼링크를 지정하는 요소
href
, target
속성
-
<span>
- 인라인 요소
- 특별한 의미가 없는 구분을 위한 요소
-
<br>
- 인라인 요소
- 줄바꿈 요소
-
<input>
- 인라인 블록 요소
- 사용자가 데이터를 입력하는 요소
- 왼쪽에서 오른쪽으로 수평으로 쌓이지만, 가로, 세로 크기 지정과 상하좌우 여백을 지정할 수 있다.
-
<table>
<tr>
(table row): 행
<td>
(table data): 열
🤔 Wrapping(래핑): 요소(텍스트)를 어떤 요소로 묶어주는(감싸는) 행위를 뜻한다.
4. 전역 속성
-
title="설명"
- 요소의 정보나 설명을 지정
-
style="스타일"
- 요소에 적용할 스타일을 지정
-
class="이름"
- 요소에 지칭하는 중복 가능한 이름
-
id="이름"
- 요소를 지칭하는 고유한 이름
-
data-이름="데이터"
- 요소에 데이터를 지정
<div data-fruit-name="apple">사과</div>
<div data-fruit-name="banana">바나나</div>
// div라는 태그를 모두 찾는다.
// 찾은 요소들을 els에 담아뒀다가 각각 반복해서 하나씩 찾은 부분을
// fruitName에 담겨있는 것들을 출력한다.
const els = document.querySelectorAll('div')
els.forEach(el => {
console.log(el.dataset.fruitName)
})
🤔 defer
속성
html
구조가 준비된 후(문서 분석 이후)에 js
를 해석하겠다는 의미가 있다.
- 위의 예제 코드를
VSCode
에서 실행하면 제대로 실행되지 않는데, <div>
가 나오기 전 js
를 해석해서 <div>
를 찾기 못했기 때문이다. 따라서 <script>
에 속성으로 defer
를 추가한다.
Author And Source
이 문제에 관하여(HTML 개요와 핵심 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@jytrack/HTML-개요와-핵심-정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<div>
: Division
- 블록 요소
- 특별한 의미가 없는 구분을 위한 요소
<h1>~<h6>
: Heading
- 블록 요소
- 제목을 의미하는 요소
<p>
: Paragraph
- 블록 요소
- 문장을 의미하는 요소
<img>
: Image
- 인라인 요소
- 이미지를 삽입하는 요소
src
,alt
속성
<ul>
, <li>
: Unordered List, List Item
- 블록 요소
- 순서가 필요없는 목록의 집합을 의미
<a>
: Anchor
- 인라인 요소
- 다른/같은 페이지로 이동하는 하이퍼링크를 지정하는 요소
href
,target
속성
<span>
- 인라인 요소
- 특별한 의미가 없는 구분을 위한 요소
<br>
- 인라인 요소
- 줄바꿈 요소
<input>
- 인라인 블록 요소
- 사용자가 데이터를 입력하는 요소
- 왼쪽에서 오른쪽으로 수평으로 쌓이지만, 가로, 세로 크기 지정과 상하좌우 여백을 지정할 수 있다.
<table>
<tr>
(table row): 행<td>
(table data): 열
🤔 Wrapping(래핑): 요소(텍스트)를 어떤 요소로 묶어주는(감싸는) 행위를 뜻한다.
-
title="설명"
- 요소의 정보나 설명을 지정
-
style="스타일"
- 요소에 적용할 스타일을 지정
-
class="이름"
- 요소에 지칭하는 중복 가능한 이름
-
id="이름"
- 요소를 지칭하는 고유한 이름
-
data-이름="데이터"
- 요소에 데이터를 지정
<div data-fruit-name="apple">사과</div>
<div data-fruit-name="banana">바나나</div>
// div라는 태그를 모두 찾는다.
// 찾은 요소들을 els에 담아뒀다가 각각 반복해서 하나씩 찾은 부분을
// fruitName에 담겨있는 것들을 출력한다.
const els = document.querySelectorAll('div')
els.forEach(el => {
console.log(el.dataset.fruitName)
})
🤔
defer
속성
html
구조가 준비된 후(문서 분석 이후)에js
를 해석하겠다는 의미가 있다.- 위의 예제 코드를
VSCode
에서 실행하면 제대로 실행되지 않는데,<div>
가 나오기 전js
를 해석해서<div>
를 찾기 못했기 때문이다. 따라서<script>
에 속성으로defer
를 추가한다.
Author And Source
이 문제에 관하여(HTML 개요와 핵심 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jytrack/HTML-개요와-핵심-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)