`

关于两个css一起使用样式冲突的问题

    博客分类:
  • html
 
阅读更多

有时候在写CSS的过程中,某些限制总是不起作用,这就涉及了CSS样式覆盖的问题,如下

 

 

Css代码
  1. #navigator {
  2. height: 100%;
  3. width: 200;
  4. position: absolute;
  5. left: 0;
  6. border: solid 2 #EEE;
  7. }
  8. .current_block {
  9. border: solid 2 #AE0;
  10. }

 

查找一些教材中(w3schools等),只说css的顺序是“元素上的style” > “文件头上的style元素” >“外部样式文件”,但对于样式文件中的多个相同样式的优先级怎样排列,没有详细说明。经过测试和继续搜索,得知优先级如下排列:

 

1. 样式表的元素选择器选择越精确,则其中的样式优先级越高:

id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式

所以上例中,#navigator的样式优先级大于.current_block的优先级,及时.current_block是最新添加的,也不起作用。

 

2. 对于相同类型选择器制定的样式,在样式表文件中,越靠后的优先级越高

注意,这里是样式表文件中越靠后的优先级越高,而不是在元素class出现的顺序。比如.class2 在样式表中出现在.class1之后:

 

Css代码
  1. .class1 {
  2. color: black;
  3. }
  4. .class2 {
  5. color: red;
  6. }

而某个元素指定class时采用 class="class2 class1"这种方式指定,此时虽然class1在元素中指定时排在class2的后面,但因为在样式表文件中class1处于class2前面,此时仍然是class2的优先级更高,color的属性为red,而非black。

 

3. 如果要让某个样式的优先级变高,可以使用!important来指定:

 

Css代码
  1. .class1 {
  2. color: black !important;
  3. }
  4. .class2 {
  5. color: red;
  6. }

此时class将使用black,而非red。

 

对于一开始遇到的问题,有两种解决方案:

1. 将border从#navigator中拿出来,放到一个class .block中,而.block放到.current_block之前:

 

 

Css代码
  1. #navigator {
  2. height: 100%;
  3. width: 200;
  4. position: absolute;
  5. left: 0;
  6. }
  7. .block {
  8. border: solid 2 #EEE;
  9. }
  10. .current_block {
  11. border: solid 2 #AE0;
  12. }

需要莫仁为#navigator元素指定class="block"

 

2. 使用!important:

 

 

Css代码
  1. #navigator {
  2. height: 100%;
  3. width: 200;
  4. position: absolute;
  5. left: 0;
  6. border: solid 2 #EEE;
  7. }
  8. .current_block {
  9. border: solid 2 #AE0 !important;
  10. }

此时无需作任何其他改动即可生效。可见第二种方案更简单一些。
转自:http://spartan1.iteye.com/blog/1526735

分享到:
评论

相关推荐

    css样式冲突处理机制.pdf

    CSS 样式冲突处理机制 CSS 样式冲突处理机制是 CSS 中一个非常重要的概念,它决定了当多个样式属性应用于同一个元素时,浏览器如何确定哪一个样式属性优先级最高。这个机制的核心是 Cascade,也就是层叠样式表的...

    经典的CSS样式

    在网页设计领域,CSS(Cascading Style Sheets)是一种至关重要的技术,用于...经典CSS样式不仅仅是关于视觉吸引力,更是关于用户体验、易用性和代码的可维护性。掌握这些核心概念,将有助于成为一个出色的前端开发者。

    CSS层叠样式表技术手册

    这种层叠机制确保了在样式冲突时,优先级高的样式生效。 CSS的语法结构简洁明了,由选择器和声明组成。选择器指定要应用样式的HTML元素,声明则包含属性和对应的值。例如,`h1 {color:red; font-size:14px;}`将所有...

    java css样式

    6. **Java与CSS的交互**:通过JavaScript(通常与jQuery库一起使用)可以动态改变CSS样式,实现更丰富的交互效果。 综上所述,Java和CSS在网页开发中各自扮演着不可或缺的角色。理解并熟练运用它们,不仅能创建出...

    CSS层叠深度解析:掌握样式冲突的艺术

    ### CSS层叠深度解析:掌握...掌握这些原则有助于开发者更有效地编写和调试样式,解决样式冲突问题,并创建出更加一致和美观的网页设计。随着Web技术的不断发展,深入理解CSS层叠机制对于前端开发人员来说尤为重要。

    css样式表使用大全

    理解这两个概念能帮助你更好地管理样式冲突和提高代码效率。 此外,书中还会涉及CSS的响应式设计,包括媒体查询(Media Queries)的使用,使网页能够根据设备特性如屏幕尺寸、分辨率等自动调整布局。这在当今多设备...

    react 关于自定义样式引入和ant-design样式引入配置问题

    - **CSS Modules**:React项目中,通常推荐使用CSS Modules,它为每个CSS类名生成唯一的局部命名,避免全局样式冲突。CSS Modules通过模块化的方式处理CSS,每个组件可以拥有自己的私有样式。 - **普通CSS引入**:...

    总结的超级有用的基础CSS样式类

    8. **动画与过渡**:`transition`属性用于平滑地改变两个CSS状态之间的效果,而`animation`属性则允许自定义复杂的动画序列。 9. **CSS预处理器**:Sass、Less和Stylus是流行的CSS预处理器,它们提供变量、嵌套规则...

    css样式冲突问题练习示例

    CSS样式冲突是网页设计中常见的问题,特别是在使用多个样式表或者内联样式时。当一个元素同时受到多个选择器的影响,而这些选择器定义了相同的属性时,就会出现冲突。解决这些问题对于确保页面的正确渲染至关重要。...

    chm 电子书 CSS 样式表帮助

    **CSS样式表.CHM** 可能是关于基础和进阶CSS概念的详细指南。CHM文件是一种由Microsoft编译的帮助文件,通常包含索引、搜索功能以及组织良好的主题,便于快速查找和学习特定的CSS知识点。这个文件可能涵盖以下内容:...

    css优先级总结

    了解并掌握CSS优先级对于解决样式冲突问题至关重要。 ##### 1. 大小写不敏感性 CSS属性名和值不区分大小写。例如,`color:red;` 和 `COLOR:RED;` 是完全相同的。然而,在实际开发中,通常建议使用一致的大小写风格...

    bootstrap页面同时有两个(以上)轮播图问题

    2. **浏览器开发者工具**:利用浏览器的开发者工具检查元素的CSS样式,找出可能存在的覆盖问题。 3. **JavaScript错误**:查看浏览器控制台中的错误信息,定位可能的JavaScript冲突。 通过以上的步骤和方法,我们...

    CSS样式表中文API

    这个“CSS样式表中文API”正是为了解决这个问题,提供了一套全面的中文参考文档,帮助开发者更高效地理解和运用CSS。 **一、CSS基本概念** 1. **选择器(Selectors)**:CSS通过选择器来指定要应用样式的HTML或XML...

    Web设计者CSS样式设计指南(CHMWrox.Professional.CSS

    《Web设计者CSS样式设计指南》是一本专为Web设计师准备的CSS(Cascading Style Sheets)技术详解书籍。CSS是网页布局与设计的核心技术,它允许开发者将内容与表现分离,实现更灵活、可维护的网页设计。本书旨在帮助...

    jQuery使用CSS()方法给指定元素同时设置多个样式

    css()方法能够接受两个参数:第一个是属性名称,第二个是要设置的值。当需要设置多个样式属性时,可以将属性名称和值以键值对的形式放入一个对象中,然后将这个对象作为参数传递给css()方法。例如: ```javascript ...

    CSS层叠样式表学习手册

    3. **层叠规则**:CSS的“层叠”体现在样式冲突时的处理方式。优先级根据内联样式、ID选择器、类选择器、元素选择器等不同来源决定,同时考虑!important声明的影响。 4. **继承与覆盖**:CSS允许子元素继承父元素...

    CSS 基础使用.md

    - **定义**: 当多个CSS规则应用于同一元素时,它们的效果会“层叠”在一起,最终形成该元素的样式。 - **示例**: 假设一个段落元素被两个不同的规则所影响: ```css p { color: red; } .highlight { color: blue...

    CSS样式框架,非常有用

    标题中的“CSS样式框架,非常有用”提示我们讨论的核心是CSS框架,它们是预先编写的一组CSS代码,旨在加速和简化网页设计过程。CSS框架提供了一套通用的设计规范,包括网格系统、响应式布局、排版、颜色方案、按钮...

    CSS 层叠样式表手册

    2. **层叠**: 当样式冲突时,CSS遵循层叠规则解决。较晚出现的样式(在同一优先级下)会覆盖之前的样式,这被称为“层叠”(cascading)。 ### 三、CSS布局 1. **盒模型**: 所有HTML元素都可以看作是盒子,包含...

    两个CSS实例,看了绝对受益匪浅

    总结起来,"climb"和"roma"这两个CSS实例是学习和理解现代CSS布局技巧的宝贵资源。通过研究它们,你可以掌握响应式设计、Flexbox布局、CSS Grid布局、预处理器的使用、高级选择器、交互性增强以及代码组织策略等多个...

Global site tag (gtag.js) - Google Analytics