코딩 스쿨 CSS

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

CSS Selectors

1. CSS 선택자란?

CSS 선택자는 HTML 요소를 선택하여 해당 요소에 스타일을 적용하는 규칙을 정의하는 역할을 합니다. 선택자를 사용하여 웹 페이지의 특정 요소, 그룹, 또는 구조에 맞춘 스타일링이 가능합니다.

CSS 선택자는 크게 기본 선택자, 조합 선택자, 의사 클래스 및 의사 요소로 구분할 수 있습니다.


2. 기본 선택자 (Simple Selectors)

2.1 요소 선택자 (Element Selector)

HTML 요소 이름을 사용하여 해당 요소에 스타일을 적용합니다. 예를 들어, p 선택자는 페이지 내의 모든 <p> 요소에 스타일을 적용합니다.

p {
    color: blue;
    font-size: 16px;
}

2.2 클래스 선택자 (Class Selector)

HTML 요소에 클래스 이름을 부여한 후, 해당 클래스 이름을 선택하여 스타일을 적용합니다. 클래스 선택자는 **.**으로 시작합니다. 같은 클래스 이름을 여러 요소에 적용할 수 있습니다.

<p class="highlight">This is a highlighted paragraph.</p>

.highlight {
    color: green;
    font-weight: bold;
}

2.3 ID 선택자 (ID Selector)

HTML 요소에 ID를 부여하고, **#**으로 시작하는 ID 선택자를 사용해 해당 요소에만 스타일을 적용합니다. ID는 문서 내에서 고유해야 합니다.

<p id="unique">This paragraph has a unique style.</p>

#unique {
    color: red;
    font-style: italic;
}

2.4 그룹 선택자 (Group Selector)

여러 요소에 동일한 스타일을 적용하고 싶을 때 선택자를 쉼표로 구분하여 그룹으로 지정할 수 있습니다.

h1, h2, h3 {
    font-family: Arial, sans-serif;
    color: purple;
}

3. 조합 선택자 (Combinator Selectors)

3.1 자손 선택자 (Descendant Selector)

특정 요소 안에 있는 모든 하위 요소에 스타일을 적용합니다. 선택자 사이에 공백을 사용합니다.

div p {
    color: gray;
}

위의 코드는 모든 <div> 요소 안에 있는 <p> 요소에 스타일을 적용합니다.

3.2 자식 선택자 (Child Selector)

직계 자식 요소에만 스타일을 적용합니다. 선택자 사이에 > 기호를 사용합니다.

ul > li {
    list-style-type: none;
}

이 코드는 <ul> 요소의 직계 자식인 <li> 요소에 스타일을 적용합니다.

3.3 인접 형제 선택자 (Adjacent Sibling Selector)

특정 요소 바로 다음에 위치한 형제 요소에 스타일을 적용합니다. 선택자 사이에 + 기호를 사용합니다.

h1 + p {
    margin-top: 0;
}

이 코드는 <h1> 바로 다음에 오는 <p> 요소에만 스타일을 적용합니다.

3.4 일반 형제 선택자 (General Sibling Selector)

특정 요소 뒤에 오는 모든 형제 요소에 스타일을 적용합니다. 선택자 사이에 ~ 기호를 사용합니다.

h1 ~ p {
    color: blue;
}

이 코드는 <h1> 뒤에 오는 모든 <p> 형제 요소에 스타일을 적용합니다.


4. 의사 클래스 (Pseudo-Classes)

의사 클래스는 특정 상태에 있는 요소에 스타일을 적용하는 선택자입니다.

4.1 :hover

요소에 마우스를 올렸을 때 스타일을 변경합니다.

a:hover {
    color: red;
}

이 코드는 링크에 마우스를 올리면 텍스트 색상을 빨간색으로 변경합니다.

4.2 :first-child

부모 요소의 첫 번째 자식 요소에 스타일을 적용합니다.

p:first-child {
    font-weight: bold;
}

부모 요소의 첫 번째 자식이 <p>인 경우, 그 <p> 요소에만 스타일을 적용합니다.

4.3 :last-child

부모 요소의 마지막 자식 요소에 스타일을 적용합니다.

p:last-child {
    color: green;
}

부모 요소의 마지막 자식인 <p> 요소에 스타일을 적용합니다.

4.4 :nth-child()

부모 요소의 n번째 자식 요소에 스타일을 적용합니다. n은 숫자 또는 수식이 될 수 있습니다.

li:nth-child(2) {
    color: blue;
}

이 코드는 목록에서 두 번째 <li> 요소에 스타일을 적용합니다.


5. 의사 요소 (Pseudo-Elements)

의사 요소는 HTML 요소의 특정 부분에 스타일을 적용할 때 사용합니다.

5.1 ::before

요소의 내용 앞에 생성된 콘텐츠에 스타일을 적용합니다.

p::before {
    content: "Note: ";
    font-weight: bold;
}

이 코드는 모든 <p> 요소 앞에 "Note: "라는 텍스트를 추가하고, 굵게 표시합니다.

5.2 ::after

요소의 내용 뒤에 생성된 콘텐츠에 스타일을 적용합니다.

p::after {
    content: " [End]";
}

이 코드는 모든 <p> 요소 뒤에 " [End]"라는 텍스트를 추가합니다.

5.3 ::first-letter

요소의 첫 번째 글자에 스타일을 적용합니다.

p::first-letter {
    font-size: 2em;
    color: red;
}

이 코드는 모든 <p> 요소의 첫 글자를 두 배 크기로 하고, 빨간색으로 표시합니다.

5.4 ::first-line

요소의 첫 번째 줄에 스타일을 적용합니다.

p::first-line {
    font-weight: bold;
    color: blue;
}

이 코드는 모든 <p> 요소의 첫 번째 줄에 스타일을 적용합니다.


6. 속성 선택자 (Attribute Selectors)

속성 선택자는 특정 속성이 포함된 요소에 스타일을 적용하는 선택자입니다.

6.1 특정 속성이 있는 요소 선택

input[type="text"] {
    background-color: yellow;
}

이 코드는 type="text"<input> 요소에 스타일을 적용합니다.

6.2 속성 값을 포함하는 요소 선택

a[href*="example"] {
    color: red;
}

이 코드는 href 속성에 "example"을 포함하는 모든 링크에 스타일을 적용합니다.


7. CSS 선택자 우선순위

CSS는 여러 선택자가 동일한 요소에 스타일을 적용할 때 우선순위(priority)를 따릅니다. 우선순위는 다음 순서로 적용됩니다:

  1. 인라인 스타일 (style="...")
  2. ID 선택자 (#id)
  3. 클래스 선택자 (.class), 속성 선택자 ([attr="value"]), 의사 클래스 (:hover, :focus 등)
  4. 요소 선택자 (p, div 등) 및 의사 요소 (::before, ::after 등)

우선순위가 같을 경우, 가장 나중에 선언된 스타일이 적용됩니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com