`
陌上花会开
  • 浏览: 39709 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

CSS中选择器优先级顺序实战讲解

    博客分类:
  • css3
阅读更多
我们有些程序猿在给一个元素(比如div)应用样式的时候,会有一些疑问,为什么我写在后面的样式不能覆盖前面的样式呢,不是说CSS是层叠样式表吗?
如果你在开发中也遇到同样的问题,即在给某一元素应用样式的时候(比如写在外部样式表中),写在后面的样式不能覆盖前面定义的样式。这个时候,你可能就得考虑是不是没考虑优先级问题了。
 
当我们在给一个标签,比如div应用样式的时候,我们得考虑优先级问题。
下面列出的就是是选择器的优先级:
    行内样式 > ID选择器样式 > 类别选择器样式 > 标记选择器样式
 
标记选择器好比一个更广泛的概念,然后到类别选择器,到ID选择器,最后到行内样式,不断的精确下去,所以越精确,优先级越高。比如下面的盒子模型:
我是标记选择器 div
 
 
我是类别选择器 .container
 
我是ID选择器 #article
 
我是行内样式 style
 
下面我对上面这些优先级分别作一下证明:
比如页面中有一个div标签,它有相应的id和class属性,如下所示
 
<div id=”article”>itdriver.cn</div>
 
现在我们先给它应用行内样式。
行内样式 : 也即直接应用在元素上的样式。 如 <div style=”background-color:yellow”></div>。 这个style属性其实就是行内样式。
 
<div id=”article” style=”background-color:yellow;”>itdriver.cn</div>
这时我们的div背景就变成了黄色了。
 
接着我们再通过ID选择器来设置div的样式。
ID选择器:所谓ID选择器,就是我们在样式表中,通过一个#id来给元素直接应用样式,大家请看下面的代码,就是如何给一个指定ID的元素应用样式;
/*给id为article的标签应用样式 */
#article{
     background-color: grey;
     font-size: 0.8em;
     float:right;
}
 

当我们运行示例的时候,会发现div的背景依然是黄色的,但是我们字体大小是按着#article来设置的(因为行内样式没有设置字体大小)。这就说明: 行内样式 > ID选择器应用的样式

接着ID选择器的下面,我们应用class选择器样式
/*给id为article的标签应用样式 */
#article{
     background-color: grey;
     font-size: 0.8em;
     float:right;
}
 
/*给所有指定container为class的标签应用样式*/
     background-color:red;
     font-size: 0.5em;
     border:1px solid red;
}
这是我们发现,除了给div加了个黄色边框,div的背景色依然是行内样式设置的黄色,字体大小是#article里设置的。由此我们可以发现,虽然.container写在#article下面,但是却没有覆盖已经定义过的样式,这就证明了:行内样式 > ID选择器样式 > 类选择器样式
 
最后再应用一个标记选择器样式
/*给id为article的标签应用样式 */
#article{
     background-color: grey;
     font-size: 0.8em;
     float:right;
}
 
/*给所有指定container为class的标签应用样式*/
.container{
     background-color:red;
     font-size: 0.5em;
     border:1px solid red;
}
 
div{
     background-color:white;
     font-size:1em;
     border:2px solid black;
     color:green;
}

我们会发现,只有字体的颜色发生了变化,其他的样式还是之前的样式,这就说明标记选择器没有覆盖前面类选择器,ID选择器以及行内已定义的样式。这也就证明了 : 行内样式 >ID选择器 > 类选择器 > 标记选择器.

欢迎大家加入互联网技术交流群:62329335 

个人申明:所分享博文,绝对原创,并力争每一个知识点都通过实战演示来进行验证。

3
4
分享到:
评论

相关推荐

    CSS中选择器优先级顺序实战讲解.pdf

    本文将详细解析CSS选择器优先级的实战应用,帮助开发者理解并解决样式覆盖的问题。 首先,我们要了解CSS选择器的四种基本类型,它们的优先级顺序如下: 1. **行内样式 (inline styles)**:这是最高优先级,通过`...

    DIV+CSS布局大全(讲解很详细)

    2. 优先级:理解CSS的优先级规则至关重要,ID选择器优先级最高,接着是类选择器、属性选择器和标签选择器,最后是行内样式。 五、响应式设计 1. 媒体查询(Media Queries):通过定义不同屏幕尺寸下的样式,实现...

    CSS 2 中文手册+5日精通CSS层叠样式表

    2. **第二天:选择器与继承**,深入讲解各种选择器的用法,以及样式如何在元素间继承,理解选择器的优先级。 3. **第三天:布局技巧**,涉及浮动布局、定位技术,以及如何使用`display`属性实现流体布局和响应式...

    《从零开始学HTML5+CSS3》中文PDF及配套代码.rar

    1. 选择器增强:CSS3引入了更强大的选择器,如属性选择器、伪类和伪元素,使得样式设置更加精准和灵活。 2. 层叠上下文:理解CSS3中的层叠上下文(Cascading Order)对于解决样式冲突至关重要,它定义了样式规则的...

    css设计指南(第3版)

    例如,类选择器、ID选择器、元素选择器的用法,以及如何通过继承和层叠来控制样式优先级。 2. **盒模型**:讲解CSS中的盒模型,包括内容区、内边距、边框和外边距,以及如何调整这些元素来控制元素的尺寸和布局。 ...

    css 模块 网页开发

    本模块将重点讲解CSS的基本概念、选择器、布局模式以及一些高级特性,帮助你提升网页设计的能力。 一、CSS基本概念 1. 层叠:CSS的“Cascading”体现在样式可以按照优先级进行叠加,包括用户代理样式、作者样式和...

    css教程宝典,学习css必备的字典

    3. **选择器与层叠规则**:详细解释ID选择器、类选择器、属性选择器、伪类和伪元素,以及层叠顺序和优先级。 4. **颜色与字体**:讨论颜色模式(RGB、HSL等)、透明度、渐变、阴影,以及字体家族、大小、样式和行高...

    html+xhtnl+div+css最好的入门实用资料

    了解选择器的概念,如类选择器、ID选择器、元素选择器等,以及如何使用CSS实现盒模型、浮动、定位等布局技术。 4. `div`元素:`div`是一个通用的容器元素,用于组织页面布局。通过CSS,你可以控制`div`的宽度、高度...

    imersaocss:Alura QuarentenaImersãoCSS

    在本项目"imersaocss:Alura QuarentenaImersãoCSS"中,我们可以...这个课程可能包含实战练习、示例代码和讲解视频,确保你能够全面理解和应用CSS技术。记得动手实践,理论与实践相结合,才能更好地掌握这些知识点。

    python入门到高级全栈工程师培训 第3期 附课件代码

    06 css的选择器优先级 07 css的背景属性 第39章 01 css的文本属性与边框属性 02 css的列表属性与display属性 03 css的内外边距 04 css的内外边距补充 05 css的float属性 06 css的清除浮动 07 css的定位 08 css的...

    老男孩Python完美实战课程 14期视频教程 28周Python视频教程 1-14周部分

    │ │ ├18css选择器.avi │ │ ├19css的存在形式及优先级.avi │ │ ├20css边框以及其他常用样式.avi │ │ ├21css之float样式.avi │ │ ├22css之float实现作业实例.avi │ │ ├23css之display样式.avi │ │...

Global site tag (gtag.js) - Google Analytics