CSS选择器以及权重顺序

简介: CSS选择器以及权重顺序

CSS选择器以及权重的设置

一个页面的搭建离不开css样式,而想要使用css对页面元素进行控制就需要用到css选择器。

按照引入方式可以说有内部样式(样式写到标签中的style里)、外部样式(样式通过引入外部的css文件)、内联样式(样式写在html文件中的style标签里)

按照选择器分类的话,常见的选择器有id选择器、类选择器、标签选择器、通配符选择器、派生选择器

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>

<body>
  <div id="content" class="container">
    content1
    <div id="content2" class="container">
      content2
    </div>

  </div>

</body>
<style>
  /* div {
    color: red;
  } */

  #content {
    color: aquamarine;
  }

  .container {
    color: blue;
  }

  /* * {
    color: yellow
  } */

  div .container {
    color: rgb(224, 34, 215)
  }

  #content2 {
    color: burlywood
  }
</style>

</html>

不同的选择器,权重是不一样我们可以看到就上面的选择器而言

id>级联>class>标签>通配符

细致一点的话,再找几个例子的话,可以发现上面的并不完全正确

尤其是涉及到id跟级联这块

 div #content2 {
  color: rgb(9, 90, 45)
 }
 #content2 {
  color: burlywood
 }

可以发现,上面这种是第一个颜色显示出来,而不是根据id显示出来。

原因css通配符选择器效率低,因为css匹配的顺序不是从左向右,而是从右向左。使用通配符选择器时,浏览器会先匹配所有的元素,再进一步匹配其他规则,这样就导致了效率变低。

css的匹配规则是从右往左,也就是说,就上面的例子而言先匹配content2的元素,再匹配属于div的content元素。这样的话,即使存在下面的样式,也会被上面的覆盖掉。

至于通配符的话,他其实存在一些效率问题。毕竟匹配所有元素不如指定元素。

此外,针对class属性中有两个选择器的情况,优先级是按照定义顺序方式确定的。

<head>
  <meta charset="UTF-8">
 <title>Title</title>
</head>

<body>
  <div id="content" class="container">
 content1
    <div id="content2" class="container container2">
   content2
  </div>
 </div>
</body>
<style>
 .container2 {
  color: aqua
 }
 .container {
color: red
 }
</style>



</html>

也就是说交换上面.container和.container2的位置,字的颜色会发生变化,但是修改class=“container container2”为class=“container2 container“并不会改变字的颜色。

此外对于! important可以提高优先级值得提一下,一般不提倡使用,毕竟正常用上面的选择器有语义化,都能看懂,突然来了个插队的,怎么玩?

示例:class比id选择器更优先,因为加了个!important

 \#content {
  color: blueviolet
 }
 .container {
  color: aqua !important
 }
相关文章
|
3月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
52 1
|
3月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
51 1
|
24天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
35 5
|
1月前
|
前端开发
CSS权重计算
【10月更文挑战第28天】CSS权重计算是CSS样式应用中的一个重要概念,了解和掌握权重计算规则有助于更好地控制页面的样式表现,避免样式冲突和意外的显示效果,从而提高网页开发的效率和质量。
|
1月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
48 2
|
3月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
3月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
105 1
|
2月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
25 0
|
3月前
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
4月前
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
35 1