博客列表 >各类选择器与结构状态伪类练习

各类选择器与结构状态伪类练习

Sinan学习博客
Sinan学习博客原创
2023年01月21日 11:42:45304浏览

各类选择器与结构状态伪类练习

基本选择器

  • 标签(元素)选择器
  1. <h2>标签选择器演示</h2>
  2. <sytle>
  3. h2{color:red;}
  4. </sytle>
  • 属性选择器
  1. <h2 class="title">属性选择器演示 1</h2>
  2. <h2 id="city">属性选择器演示 2</h2>
  3. <sytle>
  4. h2[class='titel']{color:green;}
  5. h2[id='city]{background-color:gary;}
  6. </sytle>
  • class与id属性使用频率高有语法糖
  1. <!--- [class='titel'] === .class --->
  2. h2.class{...}
  3. <!--- [id='city] === #id --->
  4. h2#id{...}

上下文选择器

根据元素层级与关系匹配元素

  1. 父子: >
  2. 后代: 空格
  3. 兄弟: +
  4. 同级: ~
  • 父子: >
  1. <!--ul是li的父级-->
  2. <ul class="list">
  3. <li class="item">item1</li>
  4. <li class="item">item2</li>
  5. <li class="item">item3</li>
  6. <li class="item">item4</li>
  7. <li class="item">item5</li>
  8. <li class="item">item6</li>
  9. <li class="item">item7</li>
  10. <li class="item">item8</li>
  11. </ul>
  12. <sytle>
  13. ul > li {color:red;}
  14. </sytle>
  • 后代: 空格
  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">
  6. item4
  7. <!--这个ul的父级是item4-->
  8. <ul>
  9. <li class="item">item4-1</li>
  10. <li class="item">item4-2</li>
  11. <li class="item">item4-3</li>
  12. <!--这里li的父级是最靠近的ul-->
  13. </ul>
  14. </li>
  15. <li class="item">item5</li>
  16. <li class="item">item6</li>
  17. <li class="item">item7</li>
  18. <li class="item">item8</li>
  19. </ul>
  20. <style>
  21. /* 后代 空格 */
  22. .list .item {
  23. color: red;
  24. }
  25. </style>

注意:.list 选择了它包含的所有层级的.item

  • 兄弟: +

兄弟层级是起点元素的下一个同级元素

  1. <!--如果把h2视为兄弟层级关系的起点元素-->
  2. <h1>我是h1,在h2的前面,与h2是同级关系不是兄弟关系</h1>
  3. <h2>兄弟层级选择器演示</h2>
  4. <p>P元素是h2元素的同级元素他们还是兄弟层级关系</p>
  5. <h3>h3元素虽然与h2也是同级关系,由于不是位于h2的下一个所以不是兄弟关系</h3>
  6. <style>
  7. /* 兄弟 + */
  8. h2 + p {
  9. color: green;/* 兄弟+有效 */
  10. }
  11. h2 + h3 {
  12. color: green;/* 兄弟+无效 */
  13. }
  14. h2 + h1 {
  15. color: green;/* 兄弟+无效 */
  16. }
  17. </style>
  18. /* 要是兄弟关系,只能是起点元素与下一个紧挨着的同级元素才符合条件 */
  • 同级: `~

同级将选择起点元素的所有同级元素

  1. <!-- 同级选择器演示 -->
  2. <h2>同级选择器演示</h2>
  3. <p>第一个p元素与h2是同级</p>
  4. <h3>h3元素与h2是同级</h3>
  5. <p>第二个p元素与h2是同级</p>
  6. <style>
  7. h2 ~ p,h3 {
  8. color: violet;/* 第一个P,第二个P,h3都有效 */
  9. }
  10. </style>

伪类选择器:结构

  1. /* 选择一个元素 */
  2. <ul class="list">
  3. <li>item1</li>
  4. <li>item2</li>
  5. <li>item3</li>
  6. <li>item4</li>
  7. <li>item5</li>
  8. <li>item6</li>
  9. <li>item7</li>
  10. <li>item8</li>
  11. <li>item9</li>
  12. <li>item10</li>
  13. </ul>
  14. <style>
  15. /* 方法一 */
  16. .list :nth-child(1) {
  17. /* 选择第一个元素 */
  18. background-color: lightblue;
  19. }
  20. .list :nth-child(10) {
  21. /* 选择第一个元素 */
  22. background-color: lightgray;
  23. }
  24. /* 方法二,使用语法糖 */
  25. .list :first-child {
  26. /* 选择第一个元素 */
  27. background-color: lightblue;
  28. }
  29. .list :last-child {
  30. /* 选择最后一个元素 */
  31. background-color: lightgray;
  32. }
  33. </style>
  1. /* 选择一组元素 */
  2. <ul class="list1">
  3. <li>item1</li>
  4. <li>item2</li>
  5. <li>item3</li>
  6. <li>item4</li>
  7. <li>item5</li>
  8. <li>item6</li>
  9. <li>item7</li>
  10. <li>item8</li>
  11. <li>item9</li>
  12. <li>item10</li>
  13. </ul>
  14. <style>
  15. /* 正向选择第5个li起后面的所有同级元素 */
  16. .list1 > :nth-child(n + 5) {
  17. color: brown;
  18. }
  19. /* 反向选择第5个li起后面的所有同级元素 */
  20. .list1 > :nth-child(-n + 5) {
  21. color: green;
  22. }
  23. </style>
  1. /* 选择偶数与奇数元素 */
  2. <ul class="list2">
  3. <li>item1</li>
  4. <li>item2</li>
  5. <li>item3</li>
  6. <li>item4</li>
  7. <li>item5</li>
  8. <li>item6</li>
  9. <li>item7</li>
  10. <li>item8</li>
  11. <li>item9</li>
  12. <li>item10</li>
  13. </ul>
  14. <style>
  15. /* 使用even选择偶数元素 */
  16. .list2 > :nth-child(even) {
  17. background-color: lightgreen;
  18. }
  19. /* 使用odd选择奇数元素 */
  20. .list2 > :nth-child(odd) {
  21. background-color: lightblue;
  22. }
  23. </style>

状态伪类

用状态伪类:hover写一个简单的下拉类表

  1. <a class="menu" href="#">下拉列表</a>
  2. <ul class="list3">
  3. <li><a href="">item1</a></li>
  4. <li><a href="">item2</a></li>
  5. <li><a href="">item3</a></li>
  6. <li><a href="">item4</a></li>
  7. <li><a href="">item5</a></li>
  8. </ul>
  9. <style>
  10. .list3 {
  11. display: none;
  12. list-style-type: none;
  13. }
  14. .menu:hover + .list3 {
  15. display: block;
  16. }
  17. </style>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议