Blogger Information
Blog 37
fans 0
comment 1
visits 28534
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CSS 基本选择器、上下文选择器、伪类选择器区别演示
kong
Original
300 people have browsed it

选择器

基本选择器

  1. 元素选择器 - div h1 h2

  2. 属性选择器 - div[class='box']
    id, class 使用频率很高的选择器,有专用的语法糖

#id, .class

上下文选择器

  1. 父子元素 >
  2. 后代元素 div p
  3. 兄弟元素 +
  4. 同级元素 ~

伪类选择器

结构伪类

  1. :nth-child(): 选取父元素的第 N 个子元素
  2. :first-child: 第一个元素
  3. :last-child: 最后一个
  4. :nth-last-child(): 匹配属于其元素的第 N 个子元素的每个元素,从最后一个子元素开始计数

状态伪类

  1. :hover: 鼠标悬停
  2. :enabled: 有效控件
  3. :disabled: 禁用控件
  4. :checked: 选中控件
  5. :required: 必选控件
  6. :focus: 焦点控件

伪类选择器

:nth-of-type(an + b)

  1. a: 系数, [0,1,2,3…]
  2. n: 参数, [0,1,2,3…]
  3. b: 偏移量, 从零开始
    规则: 计算出来的索引,必须是有效的(从1开始)

实例

基本选择器

  1. <ul class="list" id="list">
  2. <li class="item">item1</li>
  3. <li class="item">item2</li>
  4. <li class="item">item3</li>
  5. <li class="item cur">item4</li>
  6. <li class="item">item5</li>
  7. <li class="item">item6</li>
  8. <li class="item">item7</li>
  9. <li class="item">item8</li>
  10. </ul>
  1. .list {
  2. background-color: red;
  3. }
  4. #list {
  5. background-color: red;
  6. }

上下文选择器

  1. <ul class="list">
  2. <li class="item">item1</li>
  3. <li class="item">item2</li>
  4. <li class="item">item3</li>
  5. <li class="item cur">item4</li>
  6. <li class="item">item5</li>
  7. <li class="item">item6</li>
  8. <li class="item">item7</li>
  9. <li class="item">item8</li>
  10. </ul>

父元素选择器 >

  1. .list > {
  2. background-color: red;
  3. }

后代元素 空格

  1. .list li {
  2. background-color: red;
  3. }

兄弟元素 +

  1. .list li + li {
  2. background-color: red;
  3. }

同级元素 ~

  1. .list li ~ li {
  2. background-color: red;
  3. }

伪类选择器

  1. <ul class="list">
  2. <li class="item">item1</li>
  3. <li class="item">item2</li>
  4. <li class="item">item3</li>
  5. <li class="item">item4</li>
  6. <li class="item">item5</li>
  7. <li class="item">item6</li>
  8. <li class="item">item7</li>
  9. <li class="item">item8</li>
  10. <li class="item">item9</li>
  11. <li class="item">item10</li>
  12. </ul>

1. 结构伪类

  1. /* 第一个 */
  2. .list li:first-child {
  3. background-color: blue;
  4. }
  5. /* 最后一个 */
  6. .list li:last-child {
  7. background-color: aqua;
  8. }
  9. /* 匹配前三个 */
  10. .list > :nth-child(-n-3) {
  11. background-color: beige;
  12. }
  13. /* 匹配倒数第三个 */
  14. .list > :nth-last-child(-n + 3) {
  15. background-color: khaki;
  16. }
  17. /* 规则: 计算出来的索引,必须是有效的(从1开始) */
  18. .list > :nth-of-type(4n + 1) {
  19. background-color: blueviolet;
  20. }

2.状态伪类

  1. <form action="" method="post">
  2. <label for="a1">
  3. <input type="text" id="a1" name="" value="" />
  4. </label>
  5. <label for="a2">
  6. <input type="button" id="a2" name="" disabled value="按钮" />
  7. </label>
  8. <label for="a3">
  9. <input type="text" id="a3" name="" required value="数值" />
  10. </label>
  11. <label for="a4">
  12. <input type="text" id="a4" name="" value="数值1" />
  13. </label>
  14. <label for="a5">
  15. <input type="checkbox" name="" id="a5" />
  16. <span>演示</span>
  17. </label>
  18. <button type="button">提交</button>
  19. </form>
  1. /* 鼠标悬停 */
  2. form button:hover {
  3. background-color: gold;
  4. }
  5. /* 有效控件 */
  6. form label:nth-child(1) input:enabled {
  7. background-color: aquamarine;
  8. }
  9. /* 禁用控件 */
  10. form label:nth-child(2) input:disabled {
  11. background-color: gray;
  12. }
  13. /* 必选控件 */
  14. form label:nth-child(3) input:required {
  15. background-color: salmon;
  16. }
  17. /* 焦点控件 */
  18. form label:nth-child(4) input:focus {
  19. background-color: sienna;
  20. }
  21. /* 选中控件 */
  22. form label:nth-child(5) input[type="checkbox"]:checked + span {
  23. color: red;
  24. }

使用 :checked 实现显示和隐藏

  1. <label for="ic" class="btn">
  2. <span>点击</span>
  3. <input type="checkbox" id="ic" name="2" />
  4. <ul class="list">
  5. <li>item1</li>
  6. <li>item2</li>
  7. <li>item3</li>
  8. <li>item4</li>
  9. <li>item5</li>
  10. </ul>
  11. </label>
  1. .list {
  2. display: none;
  3. }
  4. .btn input[type="checkbox"]:checked + ul {
  5. display: block;
  6. }
Correcting teacher:PHPzPHPz

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