博客列表 >选择器知识汇总

选择器知识汇总

李玉峰
李玉峰原创
2022年03月22日 19:57:37504浏览

一、选择器知识html代码

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>选择器</title>
  8. <link rel="stylesheet" href="style.css" />
  9. </head>
  10. <body>
  11. <h1>选择器</h1>
  12. <h1 title="hello">两个高频属性:id用#和class用.</h1>
  13. <h1 id="a">id用于匹配一组元素中的第一个</h1>
  14. <h1 class="b">class用于匹配一组元素</h1>
  15. <hr />
  16. <h2>上下文选择器/层级选择器</h2>
  17. <ul class="list">
  18. <li class="item">item1</li>
  19. <li class="item">item2</li>
  20. <ul class="inner">
  21. <li class="item2">item2-1</li>
  22. <li class="item2">item2-2</li>
  23. </ul>
  24. <li class="item">item3</li>
  25. <li class="item dige">item4</li>
  26. <li class="item">item5</li>
  27. <li class="item">item6</li>
  28. <li class="item">item7</li>
  29. </ul>
  30. <hr />
  31. <h3 class="title" id="active">
  32. 选择器权重:为了css代码复用,不推荐使用id,因为权重太大,tag标签太少,语义化不强,所以建议用class
  33. </h3>
  34. <h2>文档样式 > 外部样式</h2>
  35. <ul>
  36. <li>id:千位</li>
  37. <li>class:百位</li>
  38. <li>tag:个位</li>
  39. </ul>
  40. <h1>调试样式:!important 最高指示,忽略任何权重</h1>
  41. <hr />
  42. <!-- 结构伪类 -->
  43. <ul class="fake">
  44. <li class="first">item1</li>
  45. <li>item2</li>
  46. <li>item3</li>
  47. <li>item4</li>
  48. <li>item5</li>
  49. <li>item6</li>
  50. <li>item7</li>
  51. <li>item8</li>
  52. <li>item9</li>
  53. <li>item10</li>
  54. </ul>
  55. </body>
  56. </html>

二、css部分代码

  1. /* 外部样式 */
  2. h1 {
  3. color: red;
  4. }
  5. h1[title="hello"] {
  6. color: green;
  7. }
  8. h1#a {
  9. color: aqua;
  10. }
  11. h1.b {
  12. color: blue;
  13. }
  14. /* 1.子元素:大于 > */
  15. /* .list > li {
  16. border: 1px solid;
  17. } */
  18. /* 2.后代元素用: 空格 */
  19. .list li {
  20. border: 1px solid;
  21. }
  22. /* 3.相邻关系用加号: + */
  23. .item.dige {
  24. background-color: cyan;
  25. }
  26. /* 兄弟样式:下面两个都可以 */
  27. /* .item.dige + li {
  28. background-color: violet;
  29. } */
  30. /* .item.dige + .item {
  31. background-color: violet;
  32. } */
  33. .item.dige + * {
  34. background-color: violet;
  35. }
  36. /* 选中所有兄弟用波浪线:~ */
  37. .item.dige ~ * {
  38. background-color: violet;
  39. }
  40. /* 选择器的权重 */
  41. h3 {
  42. color: red;
  43. }
  44. /* 同级时,按书写顺序,后面覆盖前面 */
  45. h3 {
  46. color: aquamarine;
  47. }
  48. /* 权重:1,0,0 */
  49. /* id权重 */
  50. #active {
  51. color: blue;
  52. }
  53. /* class权重:0,1,2 */
  54. body h3.title {
  55. color: red;
  56. }
  57. /* tag权重:0,0,2 */
  58. body h3 {
  59. color: blueviolet;
  60. }
  61. /* 为了css代码复用,不推荐使用id,因为权重太大,tag标签太少,语义化不强,所以建议用class */
  62. /* 调试样式:!important */
  63. h1 {
  64. color: chartreuse !important;
  65. }
  66. /* 结构伪类 */
  67. /* 传统方式 */
  68. /* .fake > .first {
  69. background-color: aqua;
  70. } */
  71. /* 选中第一个 */
  72. .fake > li:first-of-type {
  73. background-color: brown;
  74. }
  75. /* 选中最后一个 */
  76. .fake > li:last-of-type {
  77. background-color: brown;
  78. }
  79. /* 选中倒数第2个 */
  80. .fake > li:nth-last-of-type(3) {
  81. background-color: brown;
  82. }
  83. /* 伪类的参数 */
  84. /* :nth-of-type(an+b)
  85. a:系数,[0,1,2,3...]
  86. n:[0,1,2,3...]
  87. b:偏移量,从0开始
  88. 注意:计算出来的索引,必须是有效的,从1开始 */
  89. /* 实际开发过程中的使用 */
  90. /* 匹配第3个后面的所有的兄弟元素 */
  91. .fake > :nth-of-type(n + 3) {
  92. background-color: blueviolet;
  93. }
  94. /* 反向取值:从第3个开始倒着取值:-n */
  95. .fake > :nth-of-type(-n + 3) {
  96. background-color: blueviolet;
  97. }
  98. /* 倒数取值:从第3个开始倒着取值:-n */
  99. .fake > :nth-last-of-type(-n + 3) {
  100. background-color: blueviolet;
  101. }
  102. /* 奇数:odd */
  103. .fake > :nth-of-type(odd) {
  104. background-color: blueviolet;
  105. }
  106. /* 偶数: even */
  107. .fake > :nth-of-type(even) {
  108. background-color: blueviolet;
  109. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议