css !important用法以及CSS样式使用优先级判断
之前一直看到很多css中都有!important这个样式,一直不知道有什么作用的,今天在网上详细了解了一下,看了别人的博客,顺便转载收藏一下
例一:
CSS
color:red !important;
color:blue;
}
HTML
这个例子应该是大家经常见到的important的用法了,在IE6环境下,这行字是蓝色,在IE7及firefox下,为红色。这是因为IE6不认important(即不认 !importmant 但是还是认!important前面的color:red),并且color:blue放在color:red的后面(后面的css定义覆盖了前面的color:red),所以在IE6下字为蓝色;而在IE7及firefox下important级别优先,所以color:red !important;和color:blue;的前后顺序没有关系,在IE7及firefox下red跟blue谁先谁后都没有关系。
看下一个例子。
例二:
CSS
color:red;
}
.important_false{
color:blue;
}
.important_true{
color:blue !important;
}
HTML
<div class="important_false">这一行末使用important</div>
<div class="important_true">这一行使用了important</div>
</div>
例二中,CSS代码第一行设定了box里面所有div中字体色为红色,第二行和第三行都用class重新定义了自身div的字体色为蓝色,不同的是,第二行末使用important,而第三行使用了!
默认情况下,class的优先级小于id,所以,第二行中即使用class重定义了自身样式,也无法生效,所以继承父级属性,这行字还是红色!
但是,第三行中,用了important提升优先级(或看成强制重定义),所以这里的css得以生效,这行字变为了蓝色!
2、
只有当同时出现两个同名的样式时,才可以这样用,就像下面这样的.
.myclass{
margin-left:20px!important;
margin-left:40px;
}
3、 后来我看到了!important这个属性,这个属性其实也是css规范中的,结果IE6愣是不支持,也正因为它不支持,才让很多的CSSer们找到了解决的方法。一般来讲,在css中,如果在同一个css块中写下两个同样的属性,那么其实是按照最下面的来执行的,比如说:
.home{
margin-left:20px;
margin-left:40px;
}
那么在执行的时候其实是按照40px来执行的,!important的出现就是为了让用户自己设置被执行语句的优先级。如果把上面的语句改为:
.home{
margin-left:20px!important;
margin-left:40px;
}
那么在火狐、google浏览器以及IE7以上版本下将会按照20px来执行,而在IE6下却仍然按照40px来执行,因为IE6并不支持!important规范,我们就可以按照这个规则来满足IE6的设计需要,什么时候发现IE6和其他浏览器显示效果不同,那么就设置两个,在上面的一个加入!important标记,而下面的一句则不需要添加,这样IE6就按照下面的来执行了。资深的CSSer说:如今的CSS处处!important。这可都是天杀的IE6惹的祸,大家说IE6就是一坨代谢产物一点也不为过。
4、
说明!important对火狐和IE7,8的作用是相同的,而IE6而显出了特殊的结果
#test{background:("a.png") no-repeat!important;background:url(ie6.gif) no-repeat}
5、
!important 具有优先权
提升指定样式规则的应用优先权。
示例:div { color:red!important }
display:inline|block
display:inline比较经典的用法是用在 <ul> 下的 <li> 中
display:inline 对应不显示为 display:none
display:block 对应不显示为 hidden
说通俗点样式为none的元素不占位置,而样式为hidden的元素虽然不显示但还是占地方
display:inline
它可以让行内显示为块的元素,变为行内显示,例如
<div class="d1">
<div>DIV1</div>
<div>DIV2</div>
</div>
这里DIV1和DIV2分别占一行,但是你给他们加上属性后变了,DIV1和DIV2这时候显示在同一行了,试试看
<div class="d1">
<div style="display:inline">DIV1</div>
<div style="display:inline">>DIV2</div>
</div>
现在DIV1和DIV2就在一行里了。
和 display:inline 对应的是 display:block,block 会让应用了该 CSS 属性的 HTML 标记变成块级别元素,例如 SPAN 是行内显示的,但是你加了 display:block 属性就不一样了
[font style= "display:block "] SPAN1 [/font]
[font style= "display:block "] SPAN2 [/font]
block一般一个块占一行,除非float
inline是自动排为一行,就象段内的文字一样,可成为多行。
clear:both 语法:clear :none | left |right | both
参数:
none : 允许两边都可以有浮动对象
both : 不允许有浮动对象
left : 不允许左边有浮动对象
right : 不允许右边有浮动对象
说明:
该属性的值指出了不允许有浮动对象的边。请参阅float属性。
转载地址:http://www.cnblogs.com/lykbk/archive/2012/08/09/huhu345545.html
css !important用法以及CSS样式使用优先级判断的更多相关文章
- CSS3基础——笔记+实战案例(CSS基本用法、CSS层叠性、CSS继承性)
CSS3基础——笔记 CSS是Cascading Style Sheet的缩写,翻译为"层叠样式表" 或 "级联样式表".CSS定义如何显示HTML的标签央视, ...
- CSS怎样改变行内样式(通过外部级联样式表) css !important用法CSS样式使用优先级判断
CSS样式优先级 行内>内部>外部 使用!important的css定义是拥有最高的优先级的.只是在ie6下出了一点小的bug,注意书写方式一般可以轻松避开的. CSS中的!importa ...
- 跨平台移动开发 Xuijs超轻量级的框架Style CSS属性用法
PhoneGap里面推荐使用的超轻量级的框架 Style CSS属性用法 设置css属性:setstyle 通过ID设置css属性 x$('#top1').setStyle('color', '#DB ...
- CSS样式之优先级
说到到css的样式优先级,今天偶再来回顾下,从css的样式优先级可分为两个部分: 1.从CSS代码放置的位置看权重优先级: 内联样式 > 内部嵌入样式 >外联样式 2.从样式选择器 ...
- CSS 样式的优先级
1. 同一元素引用了多个样式时,排在后面的样式属性的优先级高 例如,下面的 div,同时引用了 [.default] 和 [.user] 中的样式,其中 [.user] 样式中的 width 属性会替 ...
- [程序猿入行必备]CSS样式之优先级
专业玩家请移步:http://www.w3.org/TR/CSS2/cascade.html 使用CSS控制页面样式时,常常出现设定的样式被"覆盖",不能生效的情况. 浏览器是根据 ...
- CSS样式的优先级
1.相同权值情况下,CSS样式的优先级总结来说,就是--就近原则(离被设置元素越近优先级别越高): 内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中). 2.权 ...
- Web前端面试指导(十三):css样式的优先级是怎么样的?
题目点评 CSS样式的优先级规则给人的感觉总是摸不透,更不用说怎么去表达了,在网络上流传着很多版本,描述的都很复杂也不全面,看了之后还是不满意.我来给大家介绍一个比较系统.全面有比较容易记住的规则吧! ...
- CSS 样式的优先级小结
1. 同一元素引用了多个样式时,排在后面的样式属性的优先级高 例如,下面的 div,同时引用了 [.default] 和 [.user] 中的样式,其中 [.user] 样式中的 width 属性会替 ...
随机推荐
- e822. 监听JScrollPane的滚动
A scrollbar in a scroll pane fires adjustment events whenever its value changes. // Create a scrolla ...
- CentOS7 从管理员组中 新增/删除用户
$ sudo usermod -aG wheel usera #增加 $ sudo usermod -G usera usera # 删除
- C# 获取listview中选中一行的值
首先必须要判断listView1.SelectedItems.Count>0或是listview1.SelectedIndices.Count>0,否则第一次点击会选不中.其次,好像ite ...
- iOS: 控制UIView的外形
#import <UIKit/UIKit.h> #import <QuartzCore/QuartzCore.h> @interface UIView (Shape) - (v ...
- Rx与Async Task的简单对比
有关Reactive Extensions的介绍可见https://rx.codeplex.com/,总的来说,你可以当它是又一个异步编程的框架,它以观察者模式实现了对数据流的的“订阅”.一个列表,一 ...
- 【python】并行化的又一种思路
https://segmentfault.com/a/1190000000414339
- spring原理机制
转自:http://blog.csdn.net/nrain2/article/details/45459311 1,关于spring容器: spring容器是Spring的核心,该 容器负责管理spr ...
- Android让文本输入框默认不获取焦点
项目中有个检索功能,页面上有个EditText输入框,打开页面后,焦点默认在EditText上,这样的话软键盘默认就会显示出来,占据大半个屏幕. 后来想办法将这个给去掉了,原先考虑着将焦点赋给页面上的 ...
- VirtualBox导入已存在的VHD遇到的uuid冲突问题
解决方法: 用命令行进入VirtualBox的安装目录,使用下面的命令: (进入命令行窗口,cmd模式) C:\Program Files\Oracle\VirtualBox>VBoxManag ...
- opencv获取IP摄像头(IP-camera)实时视频流
之前这篇文章讲了如何通过网络摄像头(web camera)获取实时视频流,但是这种方法的缺陷就是摄像头和主机必须连在一起,那这种在室外部署的时候就会非常麻烦并且不安全,所以后来找了下用海康威视或者大华 ...