[S1-Unit04] CSS
포스트
취소

[S1-Unit04] CSS

CSS란?

CSS (Cascading Style Sheets) 는 웹 페이지 스타일 및 레이아웃을 정의하는 스타일시트 언어다.

단순한 정보를 전달을 하기 위한 사이트라면 왼쪽도 괜찮지만, 좀 더 편안한 분위기, 정돈된 레이아웃, 문단 간격을 조정한 오른쪽이 조금 더 보기 좋고, 가독성이 좋아보인다. 이 두 사이트는 똑같은 HTML 파일을 사용하지만, 전달력의 차이가 발생한다.

이처럼 CSS 는 웹 사이트 사용자가 HTML 문서에 작성된 콘텐츠를 잘 이해할 수 있도록 돕는 역할을 한다. 개발자는 이 CSS를 활용하여 웹 애플리케이션에 접근할 수 있는 사용자 인터페이스 (User Interface) 부터 만들게 된다.


사용자 인터페이스 (UI: User Interface)

인터페이스 (Interface) 는 컴퓨터와 교류하기 위한 연결고리다. 버튼도 없고, 마우스도 없던 시대의 개발자는 자신이 만든 애플리케이션과 소통하기 위해 CLI를 사용했다. 키보드로 작성한 비밀 암호같은 코드를 적어서 엔터를 눌러야만 애플리케이션을 작동시킬 수 있었다.

현재는 트위터로 메시지를 보내려면 메시지를 키보드 인터페이스로 톡톡톡 입력하고, 마우스로 버튼 모양의 인터페이스를 누른다. 잘 만들어진 인터페이스 덕분에 사용자가 쉽게 사용할 수 있습니다. 인터페이스 앞에 “사용자”를 붙여 사용자 인터페이스(UI) 라고 부른다.


기본 셀렉터

전체 셀렉터

전체 셀렉터는 문서의 모든 요소를 선택한다.

1
* { }

태그 셀렉터

태그 셀렉터는 같은 태그명을 가진 모든 요소를 선택한다. 복수로도 선택이 가능하다.

1
2
3
4
h1 { }
div { }

section, h1 { }

ID 셀렉터

ID 셀렉터는 #id 로 입력하여 선택한다.

1
#only { }

class 셀렉터

class 셀렉터는 .class 로 입력하여 선택한다. 같은 class를 가진 모든 요소를 선택한다.

1
2
.widget { }
.center { }

attribute 셀렉터

attribute 셀렉터는 같은 속성을 가진 요소를 선택한다. (모두 암기할 필요는 없다.)

1
2
3
4
5
6
7
a[href] { }
p[id="only"] { }
p[class~="out"] { }
p[class|="out"] { }
section[id^="sect"] { }
div[class$="2"] { }
div[class*="w"] { }


자식 / 후손 / 형제 셀렉터

자식 셀렉터

자식 셀렉터는 첫 번째로 입력한 요소의 바로 아래 자식인 요소를 선택한다. 아래 예시의 경우 <header> 요소 바로 아래에 있는 두 개의 <p> 요소는 선택되지만, <span> 요소의 자식인 <p> 요소는 선택되지 않는다. (마찬가지로 후손 셀렉터와의 차이를 반드시 알고 있어야 한다.)

1
header > p { }

예시)

1
2
3
4
5
6
7
8
9
10
11
12
<header>
	<p> <!-- 선택 -->
		<span>
			<p></p>
		</span>
	</p>
	<p> <!-- 선택 -->
		<span>
			<p></p>
		</span>
	</p>
</header>

후손 셀렉터

후손 셀렉터는 첫 번재로 입력한 요소의 후손을 선택한다. 아래 예시의 경우 <header> 요소의 자식인 <p> 요소 뿐만 아니라, <header> 요소의 자식의 자식이 있는 <p> 요소까지 모두 선택된다. (자식 셀렉터와의 차이점을 반드시 알고 있어야 한다.)

1
header p { }

예시)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<header>
	<p><!-- 선택 -->
		<span>
			<p><!-- !!선택!! -->
			</p>
		</span>
	</p>
	<p><!-- 선택 -->
		<span>
			<p><!-- !!선택!! -->
			</p>
		</span>
	</p>
</header>

형제 셀렉터

형제 셀렉터는 같은 부모 요소를 공유하면서, 첫 번째 입력한 요소 뒤에 오는 두 번째 입력한 요소를 모두 선택해야 한다. 아래 예시의 경우 <section> 요소 뒤에 있는 세 개의 <p> 요소를 모두 선택한다.

1
section ~ p { }

예시)

1
2
3
4
5
6
<header>
	<section></section>
	<p></p> <!-- 선택 -->
	<p></p> <!-- 선택 -->
	<p></p> <!-- 선택 -->
</header>

인접 형제 셀렉터

인접 형제 셀렉터는 같은 부모 요소를 공유하면서, 첫 번째 입력한 요소 바로 뒤에 오는 두 번재 입력한 요소를 선택한다. 예시의 경우 <section> 요소 뒤에 있는 세 개의 <p> 요소 중 첫 번째 <p> 요소를 선택한다.

1
section + p { }

예시)

1
2
3
4
5
6
<header>
	<section></section>
	<p></p> <!-- 선택 -->
	<p></p> 
	<p></p> 
</header>


Reference

CODESTATES (SEB_FE_43)

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.