기술나눔

CSS [자세한 설명] 스타일 선택기(ID, 클래스, 태그, 와일드카드, 속성, 의사 클래스, 의사 요소, 콘텐츠 속성, 하위 항목, 하위 항목, 형제, 인접 형제, 교차점, 공용체 및 기타 선택자 포함)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

CSS CSS 스타일을 추가하기 위해 페이지에서 html 요소를 선택하는 데 사용되는 스타일 선택기입니다.

렌더링 성능을 높은 순으로 정렬합니다. 다음은 다음과 같습니다.

ID 선택자 #id

ID 속성으로 요소를 선택하고 대소문자를 구분합니다.

<p id="p1" >第一段</p>
  • 1
#p1{
  color: red;
}
  • 1
  • 2
  • 3

그러나 다음과 같은 이유로 사용을 권장하지 않습니다.

  • ID 선택기가 더 높은 우선순위를 가지며 스타일을 재설정하는 것이 불편합니다.
  • ID 선택기는 주로 JS에서 사용됩니다.

클래스 선택자 .class

요소의 클래스 속성을 통해스타일선택한 요소의 클래스 이름은 대소문자를 구분합니다.

가장 권장되는 CSS 선택기는 클래스 선택기가 의미상 강력하고 스타일을 재설정하기 쉽다는 것입니다.

<span class="important" >重点词汇</span>
  • 1
.important{
  color: red;
  font-weight: bold;
}
  • 1
  • 2
  • 3
  • 4

여러 스타일 클래스를 공백으로 구분하여 동일한 요소에 추가할 수 있습니다.

<span class="important big" >巨大的重点词汇</span>
  • 1
.important {
  color: red;
  font-weight: bold;
}
.big {
  font-size: 60px;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

태그 선택기 标签名

태그 이름으로 요소를 선택하세요. 대소문자를 구분하지 않습니다.

<a href="https://www.baidu.com/" target="_blank" >百度</a>
  • 1
a {
  text-decoration: none; /* 无文本装饰(消除默认的下划线) */
}
  • 1
  • 2
  • 3

태그 선택기 성능이 좋지 않고 유지 관리 비용이 높기 때문에 권장되지 않습니다.

와일드카드 선택기 *

의사 요소를 제외한 페이지의 모든 html 요소를 선택합니다. 브라우저의 기본 스타일을 지우는 데 자주 사용되지만 성능을 소모하므로 권장되지 않습니다.

/* 清除所有html标签默认的外边距和内边距 */
* {
  margin: 0;
  padding: 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5

속성 선택기 [属性]

속성 및 속성 값을 기준으로 요소를 선택합니다. 속성은 대소문자를 구분하지 않으며 속성 값은 대소문자를 구분합니다.

속성 선택기설명하다
[기인하다]지정된 속성을 가진 요소를 선택하는 데 사용됩니다.
[기인하다=]지정된 속성과 값을 가진 요소를 선택하는 데 사용됩니다.
[기인하다~=]속성값에 지정된 어휘가 포함된 요소를 선택하는 데 사용됩니다. 속성값의 여러 조합이 포함된 시나리오에 매우 적합합니다.
[기인하다|=]조각 선택기를 시작하는 속성 값, 값은 전체 단어여야 합니다.
[기인하다^=]속성 값이 지정된 값으로 시작하는 모든 요소와 일치합니다.
[기인하다$=]속성 값이 지정된 값으로 끝나는 모든 요소와 일치합니다.
[기인하다*=]속성 값에 지정된 값이 포함된 모든 요소와 일치합니다.

의사 클래스 선택자 :状态名

다양한 상태를 기준으로 요소 선택

同一个标签,不同的状态,有不同的样式,就叫做“伪类”
  • 1
의사 클래스 선택자예시 설명
:활동적인a:활성 활성 링크를 선택합니다. (마우스가 라벨을 클릭했지만 놓지 않을 때)
:체크됨입력:체크됨선택한 각 항목을 선택하세요.<input> 요소.
:장애가 있는입력: 비활성화됨장애인을 각각 선택하세요.<input> 요소.
:비어 있는p:비어있음하위 요소가 없는 모든 요소를 ​​선택하세요.<p> 요소.
:활성화됨입력:활성화됨활성화된 각 항목을 선택하세요.<input> 요소.
:첫 번째 아이p:첫 번째 자식상위 요소의 첫 번째 하위 요소인 각 요소를 선택합니다.<p> 요소.
:첫 번째 유형p:첫 번째 유형첫 번째 항목을 상위 항목으로 선택<p>각각의 요소<p> 요소.
:집중하다입력:포커스초점이 맞는 것을 선택하세요<input> 요소.
:호버a:호버마우스를 올려놓은 링크를 선택하세요.
:범위 내입력:범위 내지정된 범위의 값을 선택합니다.<input> 요소.
:유효하지 않은입력:잘못됨잘못된 값이 있는 항목을 모두 선택하세요.<input> 요소.
:lang(언어)p:lang(그것)"it"로 시작하는 각 lang 속성 값을 선택하세요.<p> 요소.
:막내p:마지막 자식상위 요소의 마지막 하위 요소인 각 요소를 선택합니다.<p> 요소.
:마지막-유형p:마지막 유형마지막 항목을 상위 항목으로 선택하세요.<p>각각의 요소<p> 요소.
:링크링크방문하지 않은 링크를 모두 선택하세요.
:아니다(선택자):아니다§각각의 비를 선택<p> 요소의 요소.
:n번째-자식(N)p:n번째 자식(2)부모인 두 번째 자식 요소를 각각 선택합니다.<p> 요소.
:n번째 마지막 자식(N)p:n번째 마지막 자식(2)부모인 각 두 번째 자식 요소를 선택합니다.<p> 마지막 하위 요소부터 계산되는 요소입니다.
:n번째-마지막-유형(N)p:n번째-마지막-유형(2)두 번째 항목을 상위 항목으로 선택하세요.<p>각각의 요소<p>요소(마지막 하위 요소부터 계산)
:n번째-유형(N)p:n번째 유형(2)두 번째 항목을 상위 항목으로 선택<p>각각의 요소<p> 요소.
:유일한-유형p:유형만상위 항목만 선택하세요.<p>각각의 요소<p> 요소.
:외동자p:유일한 자식부모인 유일한 자식 요소를 선택합니다.<p> 요소.
:선택 과목입력:선택사항"필수" 속성 없이 선택<input> 요소.
:범위를 벗어남입력:범위 밖지정된 범위 밖의 값을 선택하세요.<input> 요소.
:읽기 전용입력: 읽기 전용"읽기 전용" 속성이 지정된 항목을 선택하세요.<input> 요소.
:읽기-쓰기입력: 읽기-쓰기"읽기 전용" 속성 없이 선택<input> 요소.
:필수의입력:필수"필수" 속성이 지정된 항목을 선택하세요.<input> 요소.
:뿌리뿌리요소의 루트 요소를 선택합니다.
:표적#뉴스:타겟현재 활성화된 #news 요소를 선택합니다(앵커 이름이 포함된 URL을 클릭).
:유효한입력:유효유효한 값을 모두 선택하세요.<input> 요소.
:방문했습니다a: 방문했다방문한 모든 링크를 선택하십시오.

목록에서 의사 클래스 선택기 사용

의사 클래스 선택자의미
li:nth-자식(2)두 번째 리
li:n번째 자식(n)모든것들
li:n번째 자식(2n)모든 짝수 리
li:n번째 자식(2n+1)모든 홀수 리
li:n번째 자식(-n+5)처음 5리
li:n번째 마지막 자식(-n+5)마지막 5리
li:n번째 자식(7n)7의 배수를 선택하세요

n은 0,1,2,3,4,5,6,7,8...을 의미합니다.(n = 0은 선택되지 않으므로 n이 1보다 작으면 유효하지 않습니다.)

테이블에서 의사 클래스 선택기 사용

  • tr:nth-child(odd):테이블의 행 1, 3, 5와 일치합니다. 이는 다음과 같습니다.tr:nth-child(2n+1)
  • tr:nth-child(even): 테이블의 2, 4, 6행과 일치합니다.tr:nth-child(2n)
  • 의사 클래스 선택자의 실제 예

    의사 요소 선택기 ::

    전체 요소가 아닌 요소의 일부를 선택하고 스타일을 지정하는 데 사용됩니다.

    CSS2中伪元素采用单冒号前缀语法, CSS2.1中伪元素改用双冒号前缀,所有支持双冒号的浏览器同样也支持旧的单冒号语法。考虑浏览器兼容性的话,推荐使用旧的单冒号语法,否则建议使用新的双冒号前缀
    
    • 1

    ::before 그리고::after

    요소 앞과 뒤에 내용을 설정하려면 content 속성과 함께 사용해야 합니다.
    https://blog.csdn.net/weixin_41192489/article/details/115100040

    일반적으로 사용되는 실제 예:

    ::first-letter 머리 글자

    <p>很久很久以前</p>
    <p>Long long ago</p>
    
    • 1
    • 2
    p::first-letter {
      font-size: 2em;
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    여기에 이미지 설명을 삽입하세요.

    ::first-line 첫번째 줄

      <div style="width: 120px">
        <p>很久很久以前,有一个白发苍苍的老人</p>
      </div>
    
    • 1
    • 2
    • 3
    p::first-line {
      color: red;
    }
    
    • 1
    • 2
    • 3

    여기에 이미지 설명을 삽입하세요.

    ::selection 마우스를 드래그하여 영역을 선택하세요.

    <p>很久很久以前,有一个白发苍苍的老人</p>
    
    • 1
    p::selection {
      color: red;
      background-color: yellow;
    }
    
    • 1
    • 2
    • 3
    • 4

    여기에 이미지 설명을 삽입하세요.

    ::placeholder 텍스트 자리 표시자

    <input placeholder="请输入" />
    
    • 1
    /* input 不写,则会选中页面所有元素的占位符 */
    input::placeholder {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    여기에 이미지 설명을 삽입하세요.

    관계 선택기

    요소 간 관계를 기반으로 요소 선택

    자손 선택자 >

    태그 내에 포함된 첫 번째 수준 태그는 해당 하위 태그입니다.

    <div>
        <p>我是div的儿子</p>
    </div>
    
    • 1
    • 2
    • 3
    div>p{
      color:red;
    }
    
    • 1
    • 2
    • 3

    자손 선택자 空格

    태그 내의 모든 태그는 해당 태그의 하위 항목입니다.

      <div class="parent">
        <p class="red">我是子代(属于后代)</p>
        <p>我是子代(属于后代,但没有 .red)</p>
        <div>
          <div class="red">我是孙代(也属于后代)</div>
        </div>
      </div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    /* 所有属于.parent元素内部的.red元素都将被染成红色。*/
    .parent .red {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    여기에 이미지 설명을 삽입하세요.

    형제 선택자 ~

    동일한 상위 요소 아래에서 지정된 요소를 선택합니다.~ 후에같은 수준의 모든 요소는 엄밀히 말하면 호출되어야 합니다. 后面兄弟选择器

    <div>
      <button>按钮1(不会变红)</button>
      <p>段落</p>
      <button>按钮2(会变红)</button>
    </div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    p ~ button {
      color: red;
    }
    
    • 1
    • 2
    • 3

    여기에 이미지 설명을 삽입하세요.

    CSS 아니요 前面兄弟选择器 , 아래 링크를 참조하여 구현을 시뮬레이션할 수 있습니다.
    https://blog.csdn.net/weixin_41192489/article/details/121784196

    이웃 형제 선택자 +

    요소 바로 다음의 다음 요소를 선택합니다.

      <div class="parent">
        <p>段落</p>
        <button>按钮1</button>
        <button>按钮2</button>
      </div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    p + button {
      color: red;
    }
    
    • 1
    • 2
    • 3

    여기에 이미지 설명을 삽입하세요.

    교차로 선택기

    여러 선택기와 동시에 일치하는 페이지의 요소를 선택하세요.

    • 선택자 사이에는 공백이 없습니다. (공백은 하위 선택자입니다.)
    • 태그 선택기가 있는 경우 태그 선택기를 먼저 배치해야 합니다.
        <p class="red">很久很久以前1</p>
        <p>很久很久以前2</p>
    
    • 1
    • 2
    /* 选中 p 标签中class值含 red 的元素 */
    p.red {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    여기에 이미지 설명을 삽입하세요.

    유니온 선택기 ,

    여러 개의 선택자 중 하나를 만족하면 선택됩니다.

    • 여러 선택기 사이에 사용됨 , 분리된
     <p class="error">报错信息</p>
     <p class="important">重要信息</p>
     <p>其他信息</p>
    
    • 1
    • 2
    • 3
    .error,
    .important {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    여기에 이미지 설명을 삽입하세요.