css样式表中的样式覆盖顺序(转)
有时候在写CSS的过程中,某些限制总是不起作用,这就涉及了CSS样式覆盖的问题,如下
- #navigator {
- height: 100%;
- width: 200;
- position: absolute;
- left: 0;
- border: solid 2 #EEE;
- }
- .current_block {
- border: solid 2 #AE0;
- }
查找一些教材中(w3schools等),只说css的顺序是“元素上的style” > “文件头上的style元素” >“外部样式文件”,但对于样式文件中的多个相同样式的优先级怎样排列,没有详细说明。经过测试和继续搜索,得知优先级如下排列:
1. 样式表的元素选择器选择越精确,则其中的样式优先级越高:
id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式
所以上例中,#navigator的样式优先级大于.current_block的优先级,及时.current_block是最新添加的,也不起作用。
2. 对于相同类型选择器制定的样式,在样式表文件中,越靠后的优先级越高
注意,这里是样式表文件中越靠后的优先级越高,而不是在元素class出现的顺序。比如.class2 在样式表中出现在.class1之后:
- .class1 {
- color: black;
- }
- .class2 {
- color: red;
- }
而某个元素指定class时采用 class="class2 class1"这种方式指定,此时虽然class1在元素中指定时排在class2的后面,但因为在样式表文件中class1处于class2前面,此时仍然是class2的优先级更高,color的属性为red,而非black。
3. 如果要让某个样式的优先级变高,可以使用!important来指定:
- .class1 {
- color: black !important;
- }
- .class2 {
- color: red;
- }
此时class将使用black,而非red。
对于一开始遇到的问题,有两种解决方案:
1. 将border从#navigator中拿出来,放到一个class .block中,而.block放到.current_block之前:
- #navigator {
- height: 100%;
- width: 200;
- position: absolute;
- left: 0;
- }
- .block {
- border: solid 2 #EEE;
- }
- .current_block {
- border: solid 2 #AE0;
- }
需要莫仁为#navigator元素指定class="block"
2. 使用!important:
- #navigator {
- height: 100%;
- width: 200;
- position: absolute;
- left: 0;
- border: solid 2 #EEE;
- }
- .current_block {
- border: solid 2 #AE0 !important;
- }
此时无需作任何其他改动即可生效。可见第二种方案更简单一些。
转自:http://spartan1.iteye.com/blog/1526735
如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
css样式表中的样式覆盖顺序(转)相关推荐
- 如何在Web用户控件中引用样式表中的样式
如何在Web用户控件中引用样式表中的样式 <%@ Control Language="C#" AutoEventWireup="true" CodeFil ...
- div html表格样式设置字体大小,css样式表中如何修改字体大小为18px?
css样式表中如何修改字体大小为18px?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. css样式表中如何修改字体大小为18px? 在css样式表中可以 ...
- 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法
配置 postCSS 自动添加 css 的兼容前缀 ① 运行 npm i postcss-loader autoprefixer -D 命令 ② 在项目根目录中创建 postcss 的配置文件 pos ...
- Css样式表中:margin、paddi…
原文地址:Css样式表中:margin.padding和border 作者:相淋 样式表的精髓:margin和padding和border 一.padding 我们可以把加过样式表的HTML标记看成是 ...
- css级联样式表_CSS –级联样式表| 第1部分
css级联样式表 CSS –级联样式表 (CSS – Cascading Style Sheets) CSS (Cascading Style Sheets) is a computer langua ...
- webpack加载器打包样式表中的图片和字体
前言 index.html代码 <!DOCTYPE html> <html lang="en"> <head><meta charset= ...
- css级联样式表_CSS –级联样式表| 第三部分
css级联样式表 CSS2雄心壮志 (CSS2 ambitions precipitated) To meet the first specification does not cover even ...
- CSS基础 外部样式表 内嵌样式表 行内样式表
CSS简述:css是Cascading Style Sheet的缩写,直译过来为层叠样式表或级联样式表,简称样式表.利用css样式表定义页面样式,将会大大减少设计工作量.一些好的css样式表的建立,可 ...
- QT样式表中 透明度 参数设置
透明度设置 在样式表中,WindowOpacity 可以设置透明度.但是仅能设置 QMainWindow,若想设置 其它部件(button,label,widget等)的透明度,可以采用rgba的颜色 ...
最新文章
- matplotlib 散点图_Python学习 —— matplotlib绘制三维曲线图和三维散点图
- 解决小米手机缩放窗口问题
- wlop一张多少钱_50etf期权交易一张合约多少钱?
- Rest 微服务工程搭建02——微服务消费者订单Module模块 || @RequestBody 的重要作用
- 利用生物视觉机制提高神经网络的对抗鲁棒性 | NeurIPS 2020
- 【算法】图(一)拓扑排序的实现 图的邻接表算法 判断是否图G中存在环
- 光端机的技术指标及构成有哪些?
- 数据流InputStream转字符串
- 好男人往往找不到女朋友
- AsyncSocket
- 软考-网络工程师复习资料
- 高中计算机会考excel试题及答案,高中计算机会考EXCEL会考练习试题
- Missing artifact com.lowagie:itextasian:jar:2.1.7
- 登入ftp:500 OOPS: vsf_sysutil_bind, maximum number of attempts to find a listening port exceeded
- 移动安全-APK加壳
- 【椭球大地测量学】Python及MATLAB实现大地坐标与空间直角坐标间的转换编程(含流程图)
- 637-字符串模式匹配-BF算法
- storyBoard配置错误导致崩溃 superview]: unrecognized selector...
- 三维空间坐标的旋转算法详解_三维空间几何坐标变换矩阵.ppt
- 为什么你只是产品经理,而总监是总监?
热门文章
- 多态的概念,特点与使用
- 远程调试tomcat
- 计算机寄存器及标志位详解
- 66319d电源使用说明书_电热水壶怎么使用?电热水壶烧不开水的问题是什么?
- Golang——文件创建和写入、OpenFile追加写入、Open读取文件、ReadBytes缓冲区读取、os.Args、flag
- Vue与Element入门使用
- python gevent模块 下载_Python中的多任务,并行,并发,多线程,多进程,协程区别...
- 序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成
- mysql 大量列 动态变量_aardio动态mysql变量设置
- 深入理解java虚拟机 (一) 第二版