• 选择器汇总


    目录

    选择器类型

    通用选择器

    标签选择器

    类选择器

    id选择器

    属性选择器

    伪类选择器

    伪元素选择器

    示例汇总

    关系选择器

    后代选择器

    相邻后代选择器

    兄弟选择器

    相邻兄弟选择器

    选择器权重

    权重分配

    原则


    选择器类型

    通用选择器

    通用选择器以*选择页面上的所有的 HTML 元素

    1. * {
    2. text-align: center;
    3. line-height: 50px;
    4. }

    标签选择器

    标签选择器根据标签名称来选择 HTML 元素。

    1. p {
    2. color: red;
    3. width: 100px;
    4. height: 50px;
    5. border: 1px solid burlywood;
    6. }

    类选择器

    类选择器选择有特定 class 属性的 HTML 元素。以.开始

    1. .class-selector {
    2. width: 100px;
    3. height: 50px;
    4. background-color: aquamarine;
    5. }

    id选择器

    id 选择器使用 HTML 元素的 id 属性来选择特定元素。以#开始

    1. #id-selector {
    2. margin-top: 10px;
    3. width: 100px;
    4. height: 50px;
    5. border: 1px solid gray;
    6. }

    属性选择器

    属性选择器可以根据元素的属性及属性值来选择元素,属性选择器包含[]

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

    伪类选择器

    伪类选择器一般指前面有个英文冒号(:)的选择器(可以理解为是一个类选择器,但是并没有在元素上添加class名称)

    1. .fake-selector {
    2. margin-top: 10px;
    3. width: 100px;
    4. background-color: blueviolet;
    5. }
    6. /* 伪类选择器 */
    7. .fake-selector:hover {
    8. background-color: red;
    9. }

    伪元素选择器

    伪元素选择器有连续两个英文冒号的选择器(可以理解为是一个元素,但是又不会在html布局中显式呈现)

    1. .fake-element-selector {
    2. margin-top: 10px;
    3. width: 100px;
    4. border: 1px solid brown;
    5. }
    6. /* 伪元素选择器 */
    7. .fake-element-selector::after {
    8. width: 30px;
    9. height: 30px;
    10. content: "伪元素选择器";
    11. background-color: blue;
    12. }

    示例汇总

    1. <template>
    2. <div class="selector-container">
    3. <p>标签选择器p>
    4. <div class="class-selector">类选择器div>
    5. <div id="id-selector">id选择器div>
    6. <div title="properties-selector">属性选择器div>
    7. <div class="fake-selector">伪类选择器div>
    8. <div class="fake-element-selector">伪元素选择器div>
    9. div>
    10. template>
    11. <script>
    12. export default {
    13. name: "SelectorDemo",
    14. };
    15. script>
    16. <style scoped>
    17. .selector-container {
    18. margin: 10px;
    19. }
    20. /* 通用选择器 */
    21. * {
    22. text-align: center;
    23. line-height: 50px;
    24. }
    25. /* 标签选择器 */
    26. p {
    27. color: red;
    28. width: 100px;
    29. height: 50px;
    30. border: 1px solid burlywood;
    31. }
    32. /* 类选择器 */
    33. .class-selector {
    34. width: 100px;
    35. height: 50px;
    36. background-color: aquamarine;
    37. }
    38. /* id选择器 */
    39. #id-selector {
    40. margin-top: 10px;
    41. width: 100px;
    42. height: 50px;
    43. border: 1px solid gray;
    44. }
    45. /* 属性选择器 */
    46. [title="properties-selector"] {
    47. margin-top: 10px;
    48. width: 100px;
    49. height: 50px;
    50. border: 1px solid goldenrod;
    51. }
    52. .fake-selector {
    53. margin-top: 10px;
    54. width: 100px;
    55. background-color: blueviolet;
    56. }
    57. /* 伪类选择器 */
    58. .fake-selector:hover {
    59. background-color: red;
    60. }
    61. .fake-element-selector {
    62. margin-top: 10px;
    63. width: 100px;
    64. border: 1px solid brown;
    65. }
    66. /* 伪元素选择器 */
    67. .fake-element-selector::after {
    68. width: 30px;
    69. height: 30px;
    70. content: "伪元素选择器";
    71. background-color: blue;
    72. }
    73. style>

    关系选择器

    后代选择器

    选择所有合乎规则的后代元素。空格连接

    1. <template>
    2. <div class="selector-container">
    3. <div class="parent">
    4. <div class="child1">
    5. 1
    6. <div class="child">1-1</div>
    7. <div>1-2</div>
    8. <div>1-3</div>
    9. </div>
    10. <div class="child">
    11. 2
    12. <div>2-1</div>
    13. <div>2-2</div>
    14. <div>2-3</div>
    15. </div>
    16. </div>
    17. </div>
    18. </template>
    19. <script>
    20. export default {
    21. name: "SelectorDemo",
    22. };
    23. </script>
    24. <style scoped>
    25. .selector-container {
    26. margin: 10px;
    27. }
    28. .parent .child {
    29. color: blueviolet;
    30. font-size: 26px;
    31. }
    32. </style>

    相邻后代选择器

    只选择子元素,会忽略孙子、重孙子等元素,因此又称为“子选择器”,用>连接

    1. <template>
    2. <div class="selector-container">
    3. <div class="parent">
    4. <div class="child1">
    5. 1
    6. <div class="child">1-1</div>
    7. <div>1-2</div>
    8. <div>1-3</div>
    9. </div>
    10. <div class="child">
    11. 2
    12. <div>2-1</div>
    13. <div>2-2</div>
    14. <div>2-3</div>
    15. </div>
    16. </div>
    17. </div>
    18. </template>
    19. <script>
    20. export default {
    21. name: "SelectorDemo",
    22. };
    23. </script>
    24. <style scoped>
    25. .selector-container {
    26. margin: 10px;
    27. }
    28. div {
    29. color: black;
    30. font-size: 16px;
    31. }
    32. .parent > .child {
    33. color: blueviolet;
    34. font-size: 26px;
    35. }
    36. </style>

    兄弟选择器

    选择当前元素后面的所有合乎规则的兄弟元素,用~连接。

    注意是当前元素后面的元素,在当前元素前面的元素是不会被匹配的。

    1. <template>
    2. <div class="selector-container">
    3. <div class="parent">
    4. <div class="child1">
    5. 1
    6. <div>1-0</div>
    7. <div class="child">1-1</div>
    8. <div>1-2</div>
    9. <div>1-3</div>
    10. </div>
    11. <div class="child">
    12. 2
    13. <div>2-1</div>
    14. <div>2-2</div>
    15. <div>2-3</div>
    16. </div>
    17. <div class="child3">
    18. 3
    19. <div>3-1</div>
    20. <div>3-2</div>
    21. <div>3-3</div>
    22. </div>
    23. <p>1111111</p>
    24. <div class="child">
    25. 4
    26. <div>4-1</div>
    27. <div>4-2</div>
    28. <div>4-3</div>
    29. </div>
    30. </div>
    31. </div>
    32. </template>
    33. <script>
    34. export default {
    35. name: "SelectorDemo",
    36. };
    37. </script>
    38. <style scoped>
    39. .selector-container {
    40. margin: 10px;
    41. }
    42. .child ~ div {
    43. color: blueviolet;
    44. font-size: 26px;
    45. }
    46. </style>

    相邻兄弟选择器

    仅仅选择当前元素相邻的那个合乎规则的兄弟元素,用+连接。

    1. <template>
    2. <div class="selector-container">
    3. <div class="parent">
    4. <div class="child1">
    5. 1
    6. <div>1-0</div>
    7. <div class="child">1-1</div>
    8. <div>1-2</div>
    9. <div>1-3</div>
    10. </div>
    11. <div class="child">
    12. 2
    13. <div>2-1</div>
    14. <div>2-2</div>
    15. <div>2-3</div>
    16. </div>
    17. <div class="child3">
    18. 3
    19. <div>3-1</div>
    20. <div>3-2</div>
    21. <div>3-3</div>
    22. </div>
    23. <p>1111111</p>
    24. <div class="child">
    25. 4
    26. <div>4-1</div>
    27. <div>4-2</div>
    28. <div>4-3</div>
    29. </div>
    30. </div>
    31. </div>
    32. </template>
    33. <script>
    34. export default {
    35. name: "SelectorDemo",
    36. };
    37. </script>
    38. <style scoped>
    39. .selector-container {
    40. margin: 10px;
    41. }
    42. .child + div {
    43. color: blueviolet;
    44. font-size: 26px;
    45. }
    46. </style>

    选择器权重

    权重分配

    标签选择器权重:1

    类选择器权重:10

    id选择器权重:100

    原则

    1、权重可以累加

    1. div p {
    2. color: aquamarine;
    3. }

    上面的选择器权重为2,因为div和p都是标签选择器,权重都为1,累加之后就是2

    2、冲突时,选择权重打的样式

    如果对同一个标签的样式设置有冲突,使用权重大的样式

    3、权重的就近原则

    如果一个标签上同时设置两个类选择器,而两个类选择器设置的样式有冲突,则哪个选择器最后定义则使用哪个。

    就近原则是根据选择器定义的先后顺序,选择最后定义的。

  • 相关阅读:
    jQuery【事件】
    stack和queue的使用和模拟实现
    [附源码]Python计算机毕业设计Django二次元信息分享平台的设计及实现
    【农业生产模拟】WOFOST模型与PCSE模型实践
    DOM中text节点详解
    探索国密:C#中实现SM2、SM3、SM4算法的深度指南
    LeetCode 每日一题 2023/11/13-2023/11/19
    143.如何个性化推荐系统设计-3
    一级造价工程师(安装)- 计量笔记 - 第六章第一节电气工程
    牛客 HJ27 查找兄弟单词
  • 原文地址:https://blog.csdn.net/Celester_best/article/details/127580686