컨테이너 태그
콘텐츠나 레이아웃에 아무런 영향도 주지 않고, 단지 다른 요소 여럿을 묶어 관리하기 편하게 만드는 역할을 하는 태그를 ‘컨테이너’라고 합니다. 컨테이너는 콘텐츠의 내용을 구분하거나, 공통적인 스타일을 적용하고자 할 때 무척 유용합니다.
다음은 컨테이너 역할을 담당하는 두 가지 대표적인 태그들입니다.
- <div> : 블록 레벨의 컨테이너 요소를 만드는 태그
- <span> : 인라인 레벨의 컨테이너를 만드는 태그
블록 레벨 컨테이너, <div>
<body>
<div>
<p>행복하고 즐거워요~</p>
<p>HTML 공부!</p>
</div>
<div>
<p>슬프고 힘들어요</p>
<p>적게 먹고 운동하는 다이어트!</p>
</div>
</body>
위 코드에서는 두 개의 <div> 컨테이너가 사용되었습니다. 각각의 컨테이너는 두 개의 <p> 태그를 감싸고 있다는 점이 같지만, 각각이 포함하고 있는 태그의 주제(공부와 다이어트)는 확연히 다릅니다. 이렇듯 컨테이너 요소는 '영역을 구분하는' 역할을 하기 위해 주로 사용되곤 합니다.
<div> 태그는 블록 레벨 컨테이너를 만듭니다. 따라서 개발자 도구에서 공간을 확인해 보면 하나의 블록(층)을 형성하고 있는 것을 확인할 수 있습니다.
앞에서 언급한대로, 컨테이너 태그는 콘텐츠 내용이나 레이아웃에는 아무런 영향을 끼치지 않았습니다.
인라인 컨테이너, <span>
<body>
<p>
예능 프로그램 즐겨 보시나요?
저는 <span>골때리는 그녀들</span> 재미있게 보고 있습니다!
</p>
</body>
<span> 태그는 인라인 컨테이너입니다. 블록 레벨 요소의 내부에서 콘텐츠를 영역 별로, 또는 목적 별로 구분하는 역할을 하기도 하고, CSS를 통한 스타일 적용을 위해 사용되기도 합니다. 위 예제에서는 예능 프로그램의 제목(골때리는 그녀들)을 인라인 컨테이너로 묶어두었지만, 역시나 웹페이지의 결과 자체에는 별다른 영향을 주지 않습니다.
전역 속성
전역 속성(Global attributes)이란 모든 HTML 태그에서 공통적으로 사용할 수 있는 속성을 말합니다. 앞서 '02-2 속성과 주석'에서는 속성이란 태그의 부가적인 기능을 정의하는 것으로, 선택사항이라는 것을 설명한 바 있습니다.
전역 속성은 그 종류가 무척 다양하지만, 사용 빈도가 높은 것이 있는 반면 거의 사용되지 않는 속성들도 다수 존재하기 때문에 사용자가 모든 전역 속성을 알고 있을 필요는 없습니다. 다음 세 가지 속성은 사용 빈도가 무척 높은 대표적인 전역 속성들입니다.
- id : 요소에 고유한 이름을 부여하는 식별자 역할을 함
- class : 요소를 그룹 별로 묶을 수 있는 식별자 역할을 함
- title : 요소에 대한 추가 정보를 기입할 수 있는 텍스트 속성으로, 사용자에게 툴팁을 제공함
고유한 식별자, id
id 속성은 스크립트 및 스타일 적용 시 특정 요소를 식별하기 위해 요소에 대한 고유식별자를 지정합니다. 하나의 요소는 하나의 id를 가질 수 있으며, 각 요소에 대한 id는 고유한 값이어야 합니다. 아래 예제는 앞서 <div>를 살펴보기 위해 작성했던 예제에 id 속성값을 추가한 예입니다.
<body>
<div id="study">
<p>행복하고 즐거워요~</p>
<p>HTML 공부!</p>
</div>
<div id="diet">
<p>슬프고 힘들어요</p>
<p>적게 먹고 운동하는 다이어트!</p>
</div>
</body>
위와 같이 id가 지정된 요소를 식별한 다음 스타일시트(CSS)나 스크립트(JavaScript)를 추가하곤 합니다.
기본적으로 id의 값은 사용자가 자유롭게 정할 수 있습니다. 그러나 공백(스페이스나 탭 등)을 포함해서는 안되며, 문자나 숫자, 하이픈(-)과 언더스코어(_) 등의 기호를 사용해서 작성해주어야 하는 등 몇몇 제약사항도 존재합니다.
그룹화 식별자, class
class 속성은 여러 요소에 같은 이름의 식별자를 지정하여 요소를 그룹화할 수 있는 식별자입니다. id와 달리 각 요소가 고유한 값을 가지지 않아도 됩니다. 또한 id와 마찬가지로 스크립트 및 스타일 적용 시 특정 요소를 식별하기 위해 사용하곤 합니다.
<body>
<div>
<p class="text content">행복하고 즐거워요~</p>
<p class="text content">HTML 공부!</p>
</div>
<div>
<p class="text content">슬프고 힘들어요</p>
<p class="text content">적게 먹고 운동하는 다이어트!</p>
</div>
</body>
class 속성은 하나의 요소가 여러 개의 식별자를 가질 수 있습니다. 만일 요소가 두 개 이상의 class 값을 가지길 원한다면, 위 예제와 같이 공백을 이용해 값을 서로 구분해주어야 합니다. class의 값 역시 id의 값처럼 사용자가 자유롭게 정할 수 있습니다.
요소를 설명하는 추가 텍스트, title
title 속성은 요소와 관련된 추가 정보를 제공하는 텍스트를 나타냅니다. 요소에 title을 추가하면, 렌더링 되고 난 후의 결과물에 마우스를 얹었을 때 툴팁(tooltip)이 나타나게 됩니다.
툴팁이란 커서를 얹었을 때 나타나는 도움말을 뜻합니다.
<body>
<p title="현재의 심정">화창한 날씨... 어디론가 떠나고 싶다!</p>
</body>