HTML 입문 | HTML 확장 | HTML 스타일시트(CSS)
CSS란?
CSS란 Cascading Style Sheets의 약자이다.
CSS는 HTML 요소들이 각종 미디어에서 어떻게 보일지에 대한 정의하는 언어이다.
HTML4 부터는 이러한 모든 서식 설정을 HTML 문서로부터 따로 분리하는 것이 가능해졌다.
CSS 적용 방법
HTML 문서에 CSS 스타일을 적용하는 방법은 다음과 같다.
- 인라인 스타일(Inline style)
- 내부 스타일 시트(Internal style sheet)
- 외부 스타일 시트(External style sheet)
인라인 스타일(Inline style)
인라인 CSS이란 HTML 요소 내부에 style 속성을 사용하여 CSS 스타일을 적용하는 방법이다.
이러한 인라인 스타일은 해당 요소에만 스타일을 적용할 수 있다.
<p style="color:green; text-decoration:underline">이 글은 녹색이고 밑줄이 있습니다.</p>
내부 스타일 시트(Internal style sheet)
내부 CSS를 이용한 방법은 HTML 문서의 <head>
태그 내에 <style>
태그를 사용하여 스타일을 지정한다.
이러한 내부 스타일 시트는 해당 HTML 문서에만 스타일을 적용할 수 있다.
<style>
body { background-color: lightyellow; }
p { color: red; text-decoration: underline; }
</style>
외부 스타일 시트(External style sheet)
외부 CSS를 이용한 방법은 웹 사이트 전체의 스타일을 하나의 파일에서 변경할 수 있도록 해준다.
스타일을 적용할 모든 웹 페이지의 <head>
태그 내에 <link>
태그를 사용하여 외부 스타일 시트를 포함하면 된다.
<link rel="stylesheet" href="/external_style_sheet.css">
CSS 적용의 우선순위
위에서 설명한 스타일 적용 방법들이 혼합되어 사용될 경우, 최종적으로 적용되는 스타일은 다음 순서에 따라 결정된다.
- 인라인 CSS (Inline CSS)
- 내부 / 외부 CSS
- 웹 브라우저 기본 스타일
예를 들어, 인라인 스타일이 적용된 태그는 내부나 외부 스타일 시트와는 상관없이 무조건 인라인 스타일이 적용된다. 또한, 내부 스타일 시트와 외부 스타일 시트는 가장 마지막에 적용된 스타일 시트가 적용된다.
이보다 자세한 내용은 CSS 선택자 를 참조하여라.
CSS 선택자(selector)
스타일을 적용할 HTML 요소를 선택하는데 사용하는 대표적인 선택자는 다음과 같다.
- HTML 요소 선택자
- 아이디(id) 선택자
- 클래스(class) 선택자
HTML 요소 선택자
CSS를 적용할 대상으로 HTML 요소의 태그명을 명시하여 선택할 수 있다.
p { color: red; font-size: 14px; }
위 예제에서는 태그가 <p>
인 모든 요소에 적용된다.
아이디(id) 선택자
아이디 선택자는 CSS를 적용할 대상의 아이디가 지정된 요소를 선택할 때 사용한다. 이 선택자는 웹 페이지에 포함된 여러 요소 중에서 특정 아이디에 해당하는 요소만을 선택해 준다.
이때 선택하려는 속성값 앞에 샵(#)를 추가해서 작성한다.
<style>
#text { color: blue; font-weight: 600; }
</style>
...
<p id="text">이 문장은 파란색이고 두껍습니다.</p>
위 예제에서는 id가 text인 모든 요소에 적용된다.
HTML과 CSS에서는 하나의 웹 페이지에 속하는 여러 요소에 동일한 아이디를 사용해도 별 문제없이 동작은 한다.
하지만, 이렇게 중복된 아이디를 가지고 자바스크립트 작업을 하게 되면 오류가 발생할 수도 있다.
따라서, 되도록이면 하나의 웹 페이지에 속하는 모든 요소의 아이디를 다르게 하거나 클래스를 사용하는 것이 좋다.
클래스(class) 선택자
클래스 선택자는 어떠한 그룹의 여러 요소를 한 번에 선택할 때 사용한다.
이러한 어떠한 그룹을 클래스(class)라고 하며, 동일한 클래스 이름을 가지는 요소들을 모두 선택해 준다.
이때 선택하려는 속성값 앞에 마침표(.)를 추가해서 작성한다.
<style>
.text { color: lime; text-decoration: overline; }
</style>
...
<p class="text">이 문장은 파란색이고 두껍습니다.</p>
<p>이 문장은 스타일 스타일이 적용되지 않았습니다.</p>
<p class="texts">이 문장도 파란색이고 두껍습니다.</p>
위 예제에서는 class가 text인 모든 요소에 적용된다.