일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Navigation Pattern
- Linux apt
- Linux cat
- HTTP Web Server
- EC2 Apache2
- Linux apt-get
- EC2 zsh
- EC2 oh my zsh
- Linux 디렉터리 역할
- linux background
- Linux ls
- Linux 파일 관리 명령어
- JavaScript EventLoop
- Linux pwd
- Linux oh my zsh
- 자바스크립트 런타임
- 자바스크립트 이벤트 루프
- linux foreground
- javascript 정렬
- JavaScript 실행 디버깅
- Logback
- Linux 디렉터리 명령어
- AWS EC2 서버 만들기
- Linux cd
- Linux rmdir
- Linux mkdir
- EC2 HTTP 호스팅
- Linux 디렉터리 구조
- javascript scope
- 서버의 서비스 방식
- Today
- Total
HyunJun 기술 블로그
HTML의 Element와 Block, Inline, inline-block Elements, 주석 본문
1. Element(요소)란?
HTML의 요소(Element)란 HTML 문서나 웹 페이지를 이루는 개별적인 요소를 의미합니다.
- Element는 Start tag부터 end tag까지 모두를 의미합니다.
- 예를 들어 <tagname>contents</tagname>과 같습니다.
- 일부 HTML 요소에는 컨텐츠 자체가 없는 경우도 있는데 이러한 경우 end tag도 없습니다. ex) <br>
- HTML의 요소는 아래와 같이 5가지의 내용이 있습니다.
- <1. 시작 태그 2. 속성 이름="3. 속성 값">4. 내용</5. 종료 태그>
2. text
HTML은 용도에 따라 태그를 구분하여 페이지를 표현하지만, 태그를 작성하지 않아도 내용은 입력이 됩니다.
<html>
<head> </head>
<body>
Hello HTML!
a
b
c
</body>
</html>
단순히 텍스트만으로 만든 내용은 아무런 태그를 가지지 않으며 줄바꿈을 한 칸의 띄어쓰기(space)로 인식합니다.
또한, 속한 태그가 없기 때문에 선택적으로 스타일을 줄 수 없으며, 개발자 도구로 확인 시 스타일이 잡히지 않습니다.
하여 이러한 단순 텍스트는 지양하는 것이 좋습니다.
3. 블록 요소와 인라인 요소, inline-block
그렇다면 태그(요소)를 사용하기 전에, 요소에는 블록 요소와 인라인 요소가 존재합니다.
3-1. Block Element: div, p, h, ul, ol, form, ...
- 좌, 우로 표현 가능한 최대의 가로 너비를 사용합니다.
- width, height, margin, padding 등을 사용하여 블록의 크기가 변경 가능합니다.
- 모든 인라인 요소를 포함할 수 있습니다.
- 다른 블록 요소도 일부 포함 가능합니다.
- 레이아웃을 나누는 용도로 사용합니다.
Div 태그
- div 태그는 레이아웃 계층 분할(division) 하는 용도입니다.
- 코드상에서 개행은 한 줄의 띄어쓰기만 적용됩니다.
<div>
앞으로 가장 많이 사용하는 엘리먼트입니다. 이렇게 입력하면 어떻게 뜰까요?
길게 길게 적어서 다음 줄까지 맞춰지도록 해볼까요?
</div>
<div>한번 확인해 보죠</div>
- 코드 상에서 엔터(줄 바꿈)를 입력했지만, 하나의 div 내에서는 적용되지 않았고, 아래의 사진처럼 한 칸의 공백으로 인식합니다.
- 또한 하나의 div마다 한 줄을 차지하는 것을 확인할 수 있습니다.
- 마지막으로 크롬 개발자 도구로 확인 시 하나의 div가 표현 가능한 최대의 가로 넓이를 가지고 있는 것을 확인할 수 있습니다.
P 태그
- p 태그는 실제 문단(paragraph)을 작성하는 용도로 사용됩니다.
- p 태그는 위, 아래로 margin(여백)을 가집니다.
- 코드상에서 개행은 한 줄의 띄어쓰기만 적용됩니다.
<p>
문단을 작성하는 엘리먼트입니다. 이 엘리먼트도 길게길게 적어볼까요?
줄바꿈이 될때까지
</p>
<p>한번 확인해 보죠</p>
역시 최대 가로 넓이를 가지고 있고, 위아래로 16씩 margin 값을 자동으로 가지고 있습니다.
3-2. 인라인 요소: span, a, img, ...
- 컨텐츠 길이만큼의 사용 중인 영역만 표현 가능합니다.
- 한 줄에 여러 인라인 요소를 배치 가능합니다.
- height, width가 적용되지 않습니다.
- 항상 블록 요소 안에 포함되어 있습니다.
- 인라인 요소 안에 다른 인라인 요소가 포함될 수 있습니다.
- 텍스트를 작성하는 요소로 적합합니다.
span 태그
- span 태그는 특정 문단(span, 폭)에 색을 준다든지 강조하기 위해 사용됩니다.
<span>
안녕하세요.
반갑습니다.
</span>
<span>가</span>
<span>나</span>
<span>다</span>
하나의 개행마다 한 칸의 공백으로 인식하며, 컨텐츠의 길이만큼만 사이즈를 차지하고 있습니다.
3-3. inline-block
style에서 display 속성 변경으로, 컨텐츠만큼의 공간을 차지하는 Inline의 장점과
width, height 조절이 자유로운 Block의 장점을 합친 inline-block 요소로 설정이 가능합니다.
<div style="display: inline-block; width: 500px; height: 100px">인라인 블럭 속성을 가집니다.</div>
<div style="display: inline-block; width: 500px; height: 100px">인라인 블럭 속성을 가집니다.</div>
<div style="display: inline-block; width: 500px; height: 100px">인라인 블럭 속성을 가집니다.</div>
4. 포함 관계
- span은 자식 요소로 div, p 태그를 포함할 수 없습니다.
- 기본적으로 span 안 내용이 짧을 경우 해당 요소의 영역은 div, p 태그보다 작으므로, span 안에는 블록 요소를 넣지 않습니다.
- 반대로, div와 p 태그는 span 태그를 포함할 수 있습니다.
- p 태그는 div 태그를 포함할 수 없습니다.
- p 태그는 기본적으로 문단을 입력하는 용도이므로, p 태그 안에는 레이아웃을 나누는 용도인 div 요소는 포함할 수 없습니다.
- p 태그의 자식 요소로써는 span, a, strong 등과 같은 인라인 요소만 올 수 있습니다.
- 문단 안에 문단을 넣으면 말이 안 되는 것처럼, 문단 안에 이미지를 넣는다는 말이 되는 것처럼 생각하면 쉽습니다.
<p><div>테스트</div></p>와 같은 형태가 있다면,
<div><p>테스트</p></div>와 같은 형태로 바꾸어야 합니다.
div 태그는 p 태그를 포함할 수 있습니다.
div 태그는 p 태그처럼 문자를 입력할 수 있지만 실제 용도는 HTML 문서의 영역 구분을 하기 위한 요소입니다.
각 영역의 용도를 구분하는 기능이므로 다른 블록 요소가 하위에 포함될 수 있습니다.
5. 연습
아래 HTML의 결과는 어떻게 될까요?
<div>
<div>1</div>
<span>2</span>
<span>3</span>
<div>
<span>4</span>
<div>5</div>
</div>
</div>
<div>
<p>
<span>1</span>
234
<span>5</span>
<p>6</p>
</p>
<div>7</div>
<div>8</div>
</div>
하지만 위의 코드는 문법적으로 오류가 있습니다. p 태그(부모 요소)안에 p 태그(자식 요소)가 들어가 있기 때문입니다.
하지만 똑똑한 크롬은 p 태그의 자식 요소로 있던 p 태그를 바깥으로 꺼내어 줍니다.
6. 주석, Comment
<!-- -->안에 내용을 넣을 경우 주석으로 인식하며 브라우저가 읽지 않습니다. 단 개발자 도구에서는 보이므로 실제 배포되는 페이지(사이트)라면 주석을 제거해 주는 것이 좋습니다.
<!-- 주석, comment -->
<p>나는 p 태그</p>
7. 결론
결론적으로, 단순 텍스트 정보일 경우 p 태그에 사용하고, 구역을 나누기 위한 용도일 경우 div 태그를 사용합니다.
또한, 특정 요소를 강조하고 싶은 경우 span 태그를 사용하는 것으로, 쓰이는 용도에 따라 구분해서 태그를 사용하여야 합니다.