博客列表 >浅谈CSS选择器以及伪类选择器模块化

浅谈CSS选择器以及伪类选择器模块化

酿酒的人ァ
酿酒的人ァ原创
2021年03月23日 18:30:48610浏览

一.选择器的优先级

选择器的优先级公式:行内样式 > ID选择器样式 > 类别选择器样式 > 标记选择器样式

下面是示例程序代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  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>Document</title>
  8. </head>
  9. <style>
  10. div {
  11. width: 400px;
  12. height: 400px;
  13. background-color: red;
  14. }
  15. </style>
  16. <body>
  17. <div class="ez1" id="ez0"></div>
  18. </body>
  19. </html>

若此时我们将css修改为下面这样

  1. <!DOCTYPE html>
  2. <html lang="en">
  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>Document</title>
  8. </head>
  9. <style>
  10. div {
  11. width: 400px;
  12. height: 400px;
  13. background-color: red;
  14. }
  15. .ez1 {
  16. width: 400px;
  17. height: 400px;
  18. background-color: blue;
  19. } /*标签选择器的优先级要低于类选择器*/
  20. </style>
  21. <body>
  22. <div class="ez1" id="ez0"></div>
  23. </body>
  24. </html>

可以看到颜色变成了蓝色,由此可证实标签选择器的优先级低于类选择器

此时我们在给id加一个样式

  1. <!DOCTYPE html>
  2. <html lang="en">
  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>Document</title>
  8. </head>
  9. <style>
  10. div {
  11. width: 400px;
  12. height: 400px;
  13. background-color: red;
  14. }
  15. .ez1 {
  16. width: 400px;
  17. height: 400px;
  18. background-color: blue;
  19. } /*标签选择器的优先级要低于类选择器*/
  20. #ez0 {
  21. background-color: chartreuse;
  22. }/*类选择器的优先级要低于id选择器*/
  23. </style>
  24. <body>
  25. <div class="ez1" id="ez0"></div>
  26. </body>
  27. </html>

由此可见id选择器的优先级比类选择器和标签选择器都高

但这个优先级并不是不可改变,我们可以使用!important:强制有限,这个不常用,有可能会干扰到程序的运行,只有一些特殊情况下才会使用,下面我们贴代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  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>Document</title>
  8. </head>
  9. <style>
  10. div {
  11. width: 400px;
  12. height: 400px;
  13. background-color: red;
  14. }
  15. .ez1 {
  16. background-color: blue !important;
  17. } /*标签选择器的优先级要低于类选择器*/
  18. #ez0 {
  19. background-color: chartreuse;
  20. } /*类选择器的优先级要低于id选择器*/
  21. </style>
  22. <body>
  23. <div class="ez1" id="ez0"></div>
  24. </body>
  25. </html>

虽然类的选择器的优先级没有id选择器的优先级高,但是因为使用了强制优先,所以颜色变成了蓝色

二.伪类选择器的使用

简单介绍演示一下伪类选择器的使用

  1. <!DOCTYPE html>
  2. <html lang="en">
  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. </head>
  9. <body>
  10. <ul class="test">
  11. <li>搞一个列表试试1</li>
  12. <li>搞一个列表试试2</li>
  13. <li>搞一个列表试试3</li>
  14. <li>搞一个列表试试4</li>
  15. <li>搞一个列表试试5</li>
  16. <li>搞一个列表试试6</li>
  17. <li>搞一个列表试试7</li>
  18. <li>搞一个列表试试8</li>
  19. <li>搞一个列表试试9</li>
  20. <li>搞一个列表试试10</li>
  21. </ul>
  22. </body>
  23. </html>

在上面的代码中,如果我们想单独为其中一条加样式,就可以使用nth-child()来选择某个元素的一个或多个特定的子元素,例如我们选择第五条

  1. <!DOCTYPE html>
  2. <html lang="en">
  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. </head>
  9. <style>
  10. /*选择一个父元素作为查询起点,然后去选择一个或多个特定的子元素*/
  11. .test :nth-child(5) {
  12. background-color: chartreuse;
  13. }
  14. </style>
  15. <body>
  16. <ul class="test">
  17. <li>搞一个列表试试1</li>
  18. <li>搞一个列表试试2</li>
  19. <li>搞一个列表试试3</li>
  20. <li>搞一个列表试试4</li>
  21. <li>搞一个列表试试5</li>
  22. <li>搞一个列表试试6</li>
  23. <li>搞一个列表试试7</li>
  24. <li>搞一个列表试试8</li>
  25. <li>搞一个列表试试9</li>
  26. <li>搞一个列表试试10</li>
  27. </ul>
  28. </body>
  29. </html>


结构伪类选择器,动态伪类选择器还有ui元素类等还有很多,这里实例就不过多展示了,大家可以自行搜索一下.

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议