永发信息网

css中在display前面加下划线是什么作用!

答案:6  悬赏:40  手机版
解决时间 2021-01-19 22:45
css中在display前面加下划线是什么作用!
最佳答案
这个是用来出来浏览器兼容性的,前面加下划线的元素只有IE6.0能识别,例如:
.a
{
display:none;
_display:inline;
}
这个就表示调用这个样式的元素在IE7.0或者以上的浏览器是不显示的,而在IE6.0中调试时它就会显示!
全部回答
当两个以上元素浮动时,在ie6下有可能出现相邻的元素外边距计算错误,被算成正确尺寸的两倍

这时给出问题的元素加上display:inline;就可以解决修正这个问题,由于只有ie6有这个错误,所以前面加下划线_display:inline;让ie能识别,其他浏览器忽略。
这是真对IE6写的css。首先我们要了解一个概念CSS hack。不同浏览器,比如IE6、IE7、IE8,Mozilla Firefox等,对CSS的支持及解析结果不同,因此会导致相同的网页生成的页面效果不一样。这个时候我们就需要针对不同的浏览器去定义不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。CSS Hack的原理:由于不同的浏览器对CSS的支持及解析结果不同以及CSS中的优先级的关系,我们就可以根据这个来针对不同的浏览器来写不同的CSS。比如:IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。例如:比如,通常我们会遇到如下的写法:
.side_col {
float:left; display: inline; margin-left: 20px;
}
而为了适应IE6是:
.side_col {
float: left; margin-left: 20px;
}
* .side_col {
_display:inline;
}
再比如: id="bgcolor" 的控件要在 IE6 中显示蓝色, IE7 中显示绿色, Firefox 等其他浏览器中显示红色. #bgcolor { background:red !important; background:blue; }*+html #bgcolor { background:green !important; }IE6 不认 !important, 也不认 *+html. 所以 IE6 只能是 blue.
IE7 认 !important, 也认 *+html, 优先度: (*+html + !important) > !important > +html. IE7 可以是 red, blue 和 green, 但 green 的优先度最高.
Firefox 和其他浏览器都认 !important. !important 优先, Firefox 可以是 red 和 blue, 但 red 优先度高. 参考:百度百科CSS Hack
兼容老板ie的写法
这应该是为了兼容ie7,加了下划线是只写给ie7读的

“_”是CSS hack 类内属性前缀法中的一种,是IE6专属的hack。下面详细说一下CSS hack。



  CSS hack由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。
  简单的说,CSS hack的目的就是使你的CSS代码兼容不同的浏览器。当然,我们也可以反过来利用CSS hack为不同版本的浏览器定制编写不同的CSS效果。


1.原理


  由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。
 
 CSS Hack大致有3种表现形式,CSS类内部Hack、选择器Hack以及HTML头部引用(if IE)Hack,CSS Hack主要针对类内部Hack:比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等
  选择器Hack:比如 IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。等等
  
HTML头部引用(if IE)Hack:
  针对所有IE:
  针对IE6及以下版本:
  这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。
  书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详细些。


2、常用的CSS hack方式
  
  (1)方式一 条件注释法
  只在IE下生效
  
  只在IE6下生效
  
  只在IE6以上版本生效
  
  只在IE8上不生效
  
  非IE浏览器生效
  
  (2)方式二 类内属性前缀法
  属性前缀法是在CSS样式属性名前加上一些只有特定浏览器才能识别的hack前缀,以达到预期的页面展现效果。
  IE浏览器各版本 CSS hack 对照表
    



说明:在标准模式中
“-″减号是IE6专有的hack
“9″ IE6/IE7/IE8/IE9/IE10都生效
“″ IE8/IE9/IE10都生效,是IE8/9/10的hack
“9″ 只对IE9/IE10生效,是IE9/10的hack
(3)CSS hack方式三:选择器前缀法
选择器前缀法是针对一些页面表现不一致或者需要特殊对待的浏览器,在CSS选择器前加上一些只有某些特定浏览器才能识别的前缀进行hack。


目前最常见的是


*html *前缀只对IE6生效*+html *+前缀只对IE7生效
@media screen9{...}只对IE6/7生效
@media screen {body { background: red; }}只对IE8有效
@media screen,screen9{body { background: blue; }}只对IE6/7/8有效
@media screen {body { background: green; }} 只对IE8/9/10有效
@media screen and (min-width:0) {body { background: gray; }} 只对IE9/10有效
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} 只对IE10有效等等


3、实际应用


比如要分辨IE6和firefox两种浏览器,可以这样写:div{
background:green;
*background:red;(bothIE6&&IE7)
}
我在IE6中看到是红色的,在firefox中看到是绿色的。
  解释一下:
  上面的css在firefox中,它是认识不了后面的那个带星号的东西是什么的,于是将它过滤掉,不予理睬,解析得到的结果是:div{background:green},于是理所当然这个div的背景是绿色的。
  在IE6中呢,它两个background都能识别出来,它解析得到的结果是:div{background:green;*background:red;},于是根据优先级别,处在后面的red的优先级高,于是当然这个div的背景颜色就是红色的了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1月25号在天猫超市买的泰国原装进口 孟乍隆苏
拙可以组拙实吗
同学聚会搞笑的横批
豫剧曲牌红白花中分别是拷红,白蛇传和花木兰
临沂银玉陶瓷有限公司怎么样?
实木家具被水泡了怎么处理
单选题Hetoldthemwherehe________hisdau
如何把0.8999......变成分数
NIKE这款鞋怎么搭配裤子??
请问沃尔沃S804.4AWD和沃尔沃S804.4AWD行政版
CAD2012 安装失败 急求(Installing .NET Fra
杉木和铁刀木烤火桌哪个好
《斗将魂》如何挂机和快速升级攻略
德语 翻译rohrernte
单选题Lucyhasneverwatchedthiskindofmovi
推荐资讯
牡丹说阅读答案
SEP想从12.1.3升级12.1.4 该怎么做?
路边油炸得酱是怎么做得
火车也有定员,为何可以超员?不是跟飞机和汽
求教sap2000如何将单元之间刚接改为单元之间
早上醒来全身出汗是什么原因引起的可不可以艾
我还要去找她吗?
前段时间被猫抓伤打了破伤风疫苗。然后去了海
gansu庆阳镇元信什么教
关注中国人
申请FRM证书提交简历后多久可收到审核回复
孙厝路口厦门火车站坐几路公交车
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?