선택기 요약

목차

선택기 유형

범용 선택기

태그 선택기

클래스 선택자

아이디 선택기

속성 선택기

의사 클래스 선택자

의사 요소 선택기

예시 요약

관계 선택기

자손 선택자

인접 자손 선택자

형제 선택자

이웃 형제 선택자

선택기 무게

체중 분포

원칙적으로


선택기 유형

범용 선택기

*페이지의 모든 HTML 요소를 선택하는 범용 선택기

* {
  text-align: center;
  line-height: 50px;
}

태그 선택기

태그 선택기는 태그 이름을 기반으로 HTML 요소를 선택합니다.

p {
  color: red;
  width: 100px;
  height: 50px;
  border: 1px solid burlywood;
}

클래스 선택자

클래스 선택자는 특정 클래스 속성을 가진 HTML 요소를 선택합니다. 시작하다

.class-selector {
  width: 100px;
  height: 50px;
  background-color: aquamarine;
}

아이디 선택기

id 선택기는 HTML 요소의 id 속성을 사용하여 특정 요소를 선택합니다. 시작하다

#id-selector {
  margin-top: 10px;
  width: 100px;
  height: 50px;
  border: 1px solid gray;
}

속성 선택기

속성 선택기는 해당 속성 및 속성 값을 기반으로 요소를 선택할 수 있습니다. 속성 선택기에는 []가 포함됩니다.

[title="properties-selector"] {
  margin-top: 10px;
  width: 100px;
  height: 50px;
  border: 1px solid goldenrod;
}

의사 클래스 선택자

유사 클래스 선택자는 일반적으로 영어 콜론(:)이 앞에 오는 선택자를 나타냅니다(클래스 선택자로 이해될 수 있지만 요소에 클래스 이름을 추가하지 않음).

.fake-selector {
  margin-top: 10px;
  width: 100px;
  background-color: blueviolet;
}
/* 伪类选择器 */
.fake-selector:hover {
  background-color: red;
}

의사 요소 선택기

의사 요소 선택기에는 두 개의 연속된 영어 콜론이 있는 선택기가 있습니다(요소로 이해될 수 있지만 html 레이아웃에서는 명시적으로 표시되지 않습니다).

.fake-element-selector {
  margin-top: 10px;
  width: 100px;
  border: 1px solid brown;
}
/* 伪元素选择器 */
.fake-element-selector::after {
  width: 30px;
  height: 30px;
  content: "伪元素选择器";
  background-color: blue;
}

예시 요약

<template>
  <div class="selector-container">
    <!-- 标签选择器 -->
    <p>标签选择器</p>
    <!-- 类选择器 -->
    <div class="class-selector">类选择器</div>
    <!-- id选择器 -->
    <div id="id-selector">id选择器</div>
    <!-- 属性选择器 -->
    <div title="properties-selector">属性选择器</div>
    <!-- 伪类选择器 -->
    <div class="fake-selector">伪类选择器</div>
    <!-- 伪元素选择器 -->
    <div class="fake-element-selector">伪元素选择器</div>
  </div>
</template>
<script>
export default {
  name: "SelectorDemo",
};
</script>
<style scoped>
.selector-container {
  margin: 10px;
}
/* 通用选择器 */
* {
  text-align: center;
  line-height: 50px;
}
/* 标签选择器 */
p {
  color: red;
  width: 100px;
  height: 50px;
  border: 1px solid burlywood;
}
/* 类选择器 */
.class-selector {
  width: 100px;
  height: 50px;
  background-color: aquamarine;
}
/* id选择器 */
#id-selector {
  margin-top: 10px;
  width: 100px;
  height: 50px;
  border: 1px solid gray;
}
/* 属性选择器 */
[title="properties-selector"] {
  margin-top: 10px;
  width: 100px;
  height: 50px;
  border: 1px solid goldenrod;
}

.fake-selector {
  margin-top: 10px;
  width: 100px;
  background-color: blueviolet;
}
/* 伪类选择器 */
.fake-selector:hover {
  background-color: red;
}

.fake-element-selector {
  margin-top: 10px;
  width: 100px;
  border: 1px solid brown;
}
/* 伪元素选择器 */
.fake-element-selector::after {
  width: 30px;
  height: 30px;
  content: "伪元素选择器";
  background-color: blue;
}
</style>

관계 선택기

자손 선택자

유효한 모든 하위 요소를 선택합니다. 공간 연결

<template>
  <div class="selector-container">
    <div class="parent">
      <div class="child1">
        1
        <div class="child">1-1</div>
        <div>1-2</div>
        <div>1-3</div>
      </div>
      <div class="child">
        2
        <div>2-1</div>
        <div>2-2</div>
        <div>2-3</div>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  name: "SelectorDemo",
};
</script>
<style scoped>
.selector-container {
  margin: 10px;
}
.parent .child {
  color: blueviolet;
  font-size: 26px;
}
</style>

인접 자손 선택자

자식 요소만 선택하면 손자, 증손자 등의 요소가 무시되므로 "자식 선택자"라고도 하며 >와 연결됩니다.

<template>
  <div class="selector-container">
    <div class="parent">
      <div class="child1">
        1
        <div class="child">1-1</div>
        <div>1-2</div>
        <div>1-3</div>
      </div>
      <div class="child">
        2
        <div>2-1</div>
        <div>2-2</div>
        <div>2-3</div>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  name: "SelectorDemo",
};
</script>
<style scoped>
.selector-container {
  margin: 10px;
}
div {
  color: black;
  font-size: 16px;
}
.parent > .child {
  color: blueviolet;
  font-size: 26px;
}
</style>

형제 선택자

현재 요소 뒤에 있는 모든 일반 형제 요소를 선택하고 ~로 연결합니다.

현재 요소 뒤의 요소와 현재 요소 앞의 요소는 일치하지 않습니다.

<template>
  <div class="selector-container">
    <div class="parent">
      <div class="child1">
        1
        <div>1-0</div>
        <div class="child">1-1</div>
        <div>1-2</div>
        <div>1-3</div>
      </div>
      <div class="child">
        2
        <div>2-1</div>
        <div>2-2</div>
        <div>2-3</div>
      </div>
      <div class="child3">
        3
        <div>3-1</div>
        <div>3-2</div>
        <div>3-3</div>
      </div>
      <p>1111111</p>
      <div class="child">
        4
        <div>4-1</div>
        <div>4-2</div>
        <div>4-3</div>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  name: "SelectorDemo",
};
</script>
<style scoped>
.selector-container {
  margin: 10px;
}
.child ~ div {
  color: blueviolet;
  font-size: 26px;
}
</style>

이웃 형제 선택자

현재 요소에 인접한 일반 형제 요소만 선택하고 +로 연결합니다.

<template>
  <div class="selector-container">
    <div class="parent">
      <div class="child1">
        1
        <div>1-0</div>
        <div class="child">1-1</div>
        <div>1-2</div>
        <div>1-3</div>
      </div>
      <div class="child">
        2
        <div>2-1</div>
        <div>2-2</div>
        <div>2-3</div>
      </div>
      <div class="child3">
        3
        <div>3-1</div>
        <div>3-2</div>
        <div>3-3</div>
      </div>
      <p>1111111</p>
      <div class="child">
        4
        <div>4-1</div>
        <div>4-2</div>
        <div>4-3</div>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  name: "SelectorDemo",
};
</script>
<style scoped>
.selector-container {
  margin: 10px;
}
.child + div {
  color: blueviolet;
  font-size: 26px;
}
</style>

선택기 무게

체중 분포

태그 선택기 가중치: 1

클래스 선택기 가중치: 10

ID 선택기 가중치: 100

원칙적으로

1. 가중치 누적 가능

div p {
  color: aquamarine;
}

위 선택자의 가중치는 2입니다. 왜냐하면 div와 p가 모두 레이블 선택자이고 가중치가 1이기 때문입니다. 누적 후에는 2입니다.

2. 충돌하는 경우 가중치 스타일을 선택합니다.

동일한 태그에 대한 스타일 설정이 충돌하는 경우 가중치가 더 높은 스타일을 사용하세요.

3. 무게의 근접 원리

두 개의 클래스 선택기가 동시에 레이블에 설정되고 두 클래스 선택기에 의해 설정된 스타일이 충돌하는 경우 마지막에 정의된 선택기가 사용됩니다.

근접성 원칙은 선택자가 정의된 순서에 따라 마지막으로 정의된 것을 선택하는 것입니다.

추천

출처blog.csdn.net/Celester_best/article/details/127580686