有时候在写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

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/

css样式表中的样式覆盖顺序(转)相关推荐

  1. 如何在Web用户控件中引用样式表中的样式

    如何在Web用户控件中引用样式表中的样式 <%@ Control Language="C#" AutoEventWireup="true" CodeFil ...

  2. div html表格样式设置字体大小,css样式表中如何修改字体大小为18px?

    css样式表中如何修改字体大小为18px?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. css样式表中如何修改字体大小为18px? 在css样式表中可以 ...

  3. 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法

    配置 postCSS 自动添加 css 的兼容前缀 ① 运行 npm i postcss-loader autoprefixer -D 命令 ② 在项目根目录中创建 postcss 的配置文件 pos ...

  4. Css样式表中:margin、paddi…

    原文地址:Css样式表中:margin.padding和border 作者:相淋 样式表的精髓:margin和padding和border 一.padding 我们可以把加过样式表的HTML标记看成是 ...

  5. css级联样式表_CSS –级联样式表| 第1部分

    css级联样式表 CSS –级联样式表 (CSS – Cascading Style Sheets) CSS (Cascading Style Sheets) is a computer langua ...

  6. webpack加载器打包样式表中的图片和字体

    前言 index.html代码 <!DOCTYPE html> <html lang="en"> <head><meta charset= ...

  7. css级联样式表_CSS –级联样式表| 第三部分

    css级联样式表 CSS2雄心壮志 (CSS2 ambitions precipitated) To meet the first specification does not cover even ...

  8. CSS基础 外部样式表 内嵌样式表 行内样式表

    CSS简述:css是Cascading Style Sheet的缩写,直译过来为层叠样式表或级联样式表,简称样式表.利用css样式表定义页面样式,将会大大减少设计工作量.一些好的css样式表的建立,可 ...

  9. QT样式表中 透明度 参数设置

    透明度设置 在样式表中,WindowOpacity 可以设置透明度.但是仅能设置 QMainWindow,若想设置 其它部件(button,label,widget等)的透明度,可以采用rgba的颜色 ...

最新文章

  1. matplotlib 散点图_Python学习 —— matplotlib绘制三维曲线图和三维散点图
  2. 解决小米手机缩放窗口问题
  3. wlop一张多少钱_50etf期权交易一张合约多少钱?
  4. Rest 微服务工程搭建02——微服务消费者订单Module模块 || @RequestBody 的重要作用
  5. 利用生物视觉机制提高神经网络的对抗鲁棒性 | NeurIPS 2020
  6. 【算法】图(一)拓扑排序的实现 图的邻接表算法 判断是否图G中存在环
  7. 光端机的技术指标及构成有哪些?
  8. 数据流InputStream转字符串
  9. 好男人往往找不到女朋友
  10. AsyncSocket
  11. 软考-网络工程师复习资料
  12. 高中计算机会考excel试题及答案,高中计算机会考EXCEL会考练习试题
  13. Missing artifact com.lowagie:itextasian:jar:2.1.7
  14. 登入ftp:500 OOPS: vsf_sysutil_bind, maximum number of attempts to find a listening port exceeded
  15. 移动安全-APK加壳
  16. 【椭球大地测量学】Python及MATLAB实现大地坐标与空间直角坐标间的转换编程(含流程图)
  17. 637-字符串模式匹配-BF算法
  18. storyBoard配置错误导致崩溃 superview]: unrecognized selector...
  19. 三维空间坐标的旋转算法详解_三维空间几何坐标变换矩阵.ppt
  20. 为什么你只是产品经理,而总监是总监?

热门文章

  1. 多态的概念,特点与使用
  2. 远程调试tomcat
  3. 计算机寄存器及标志位详解
  4. 66319d电源使用说明书_电热水壶怎么使用?电热水壶烧不开水的问题是什么?
  5. Golang——文件创建和写入、OpenFile追加写入、Open读取文件、ReadBytes缓冲区读取、os.Args、flag
  6. Vue与Element入门使用
  7. python gevent模块 下载_Python中的多任务,并行,并发,多线程,多进程,协程区别...
  8. 序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成
  9. mysql 大量列 动态变量_aardio动态mysql变量设置
  10. 深入理解java虚拟机 (一) 第二版