Blogger Information
Blog 145
fans 7
comment 7
visits 164162
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CSS层叠样式表基础知识—选择器
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
Original
918 people have browsed it

CSS基础知识之选择器

一、选择器类型
1、CSS选择器类型可分为:简单选择器(含属性选择器)以及伪类选择器
2、简单选择器见表一:

序号 选择器 描述 举例
1 元素选择器 根据元素标签名称进行匹配 div {...}
2 群组选择器 同时选择多个不同类型的元素 h1,h2,h3{...}
3 通配选择器 选择全部元素,不区分类型 * {...}
4 属性选择器 根据元素属性进行匹配 *[...]
5 后代选择器 选择当前元素的所有后代元素空格 ul li{……}
6 父子选择器 选择当前元素的所有自带元素> form>section{……}
8 同级相邻选择器 选择当前拥有共同父级且相邻的元素+ li.item+li{……}
9 同级所有元素 选择拥有共同父级的后续所有元素~ li.item~li{………}

3、常有简单属性选择器:

常见属性选择器 举例
类选择器 .container{………}
id选择器 #first{……}

4、伪类选择器:结构伪类选择器和表单伪类选择器
5、结构伪类选择器
a、结构伪类选择器分为:不分类型匹配(:nth-child(n))和分类型匹配(:nth-of-type(n));
b、结构伪类参考表(n从1开始计算)

不分类匹配 分类匹配
匹配第一个元素 :first-child{……} :first-of-type{……}
匹配最后一个元素 :last-child{……} :last-of-type{……}
匹配任意元素 :nth-child(n){……} :nth-of-type(){……}

备注:匹配任意元素中n可以通过表达式来表示匹配一组元素,表达式中的n从0开始,且必须写在前面;-n表示获取前面一组元素,正数表示从指定元素获取余下元素;
6、表单选择器:

7、其他伪类选择器

选择器 描述
:active 向被激活的元素添加样式
:focus 向拥有键盘输入焦点的元素添加样式
:hover 当鼠标悬浮在元素上方时,向元素添加样式
:link 向未被访问的链接添加样式
:visited 向已被访问的链接添加样式
:root 根元素,通常是html
:empty 选择没有任何子元素的元素(含文本节点)
:not() 排除与选择器参数匹配的元素

二、代码实操练习

1、代码部分:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <style>
  8. /* 元素选择器 */
  9. body {
  10. background-color: #e3e3e3;
  11. }
  12. /* 类选择器 */
  13. .container {
  14. width: 300px;
  15. height: 300px;
  16. display: grid;
  17. grid-template-columns: repeat(3, 1fr);
  18. gap: 5px;
  19. }
  20. /* 父子选择器 */
  21. .container > * {
  22. background-color: #80ffff;
  23. display: flex;
  24. justify-content: center;
  25. align-items: center;
  26. font-size: 20px;
  27. }
  28. /* 后代选择器 */
  29. .container * {
  30. /* border: 1px solid #ff0000; */
  31. }
  32. /* 伪类选择器 */
  33. .container > span:first-of-type {
  34. background-color: lightblue;
  35. }
  36. /* ID选择器 */
  37. #center {
  38. background-color: #ff00ff;
  39. }
  40. /*伪类选择器*/
  41. .container > :first-child {
  42. background-color: lightblue;
  43. }
  44. /*相邻同级选择*/
  45. #center + .item {
  46. background-color: red;
  47. }
  48. /* 伪类选择器 */
  49. .item:nth-child(n + 7) {
  50. background-color: lightgreen;
  51. }
  52. /*元素选择器*/
  53. fieldset {
  54. width: 400px;
  55. border: none;
  56. background-color: lightgreen;
  57. display: grid;
  58. grid-template-columns: 1fr;
  59. justify-items: center;
  60. gap: 15px;
  61. }
  62. /*其他伪类选择器,鼠标移动到选中*/
  63. fieldset:hover {
  64. box-shadow: 0 0 3px rosybrown;
  65. }
  66. fieldset > legend {
  67. text-align: center;
  68. width: 400px;
  69. margin: auto;
  70. font-size: 20px;
  71. color: green;
  72. font-weight: bolder;
  73. }
  74. section {
  75. width: 260px;
  76. margin: 10px auto;
  77. display: grid;
  78. grid-template-columns: 60px 1fr;
  79. }
  80. section:last-child {
  81. display: flex;
  82. justify-content: space-between;
  83. }
  84. /*表单选择器*/
  85. input:enabled {
  86. width: 200px;
  87. height: 20px;
  88. background: khaki;
  89. border-style: none;
  90. }
  91. /*表单选择器:获取焦点时选中*/
  92. input:focus {
  93. background-color: #fff;
  94. outline: none;
  95. }
  96. .button {
  97. width: 100px;
  98. height: 30px;
  99. }
  100. .button:hover {
  101. border: none;
  102. outline: none;
  103. background-color: royalblue;
  104. color: seashell;
  105. }
  106. </style>
  107. </head>
  108. <body>
  109. <div class="container">
  110. <div class="item">1</div>
  111. <div class="item">2</div>
  112. <div class="item">3</div>
  113. <div class="item">4</div>
  114. <span class="item" id="center">5</span>
  115. <span class="item">6</span>
  116. <span class="item">7</span>
  117. <span class="item">8</span>
  118. <span class="item">9</span>
  119. </div>
  120. <hr />
  121. <form action="">
  122. <fieldset>
  123. <legend>用户登陆</legend>
  124. <section>
  125. <label for="username">账号:</label>
  126. <input
  127. type="text"
  128. placeholder="explome@qq.com"
  129. id="username"
  130. name="username"
  131. required
  132. autofocus
  133. />
  134. </section>
  135. <section>
  136. <label for="pasword">密码:</label>
  137. <input
  138. type="password"
  139. name="password"
  140. id="password"
  141. placeholder="输入密码"
  142. reuqired
  143. />
  144. </section>
  145. <section>
  146. <button type="submit" class="button">登陆</button>
  147. <button type="reset" class="button">取消</button>
  148. </section>
  149. </fieldset>
  150. </form>
  151. </body>
  152. </html>

2、运行效果图:

总结:

1、css选择器虽然非常多,但经常用的并不多;最常见的由:元素选择器、类选择器和id选择器、伪类选择器(:nth-child(n):hoverinput:focus)等等
2、伪类选择器重点在::nth-child(n+2){……}在n表达式上的理解,偶数可以用even奇数可以用odd表示;
3、表单伪类选择器和链接伪类选择器,需要练习
4、特殊伪类::hover{……}input:focus:not()不包含选择器::not(span){……}

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:总结之后, 是不是发现其实挺简单的
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post