问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

css中的下划线是什么意思?

发布网友 发布时间:2022-04-22 02:55

我来回答

5个回答

热心网友 时间:2023-10-13 22:39

“_”是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:<!--[if IE]><!--您的代码--><![endif]-->,

  针对IE6及以下版本:<!--[if lt IE 7]><!--您的代码--><![endif]-->

  这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。

  书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详细些。


2、常用的CSS hack方式

  

  (1)方式一 条件注释法

  只在IE下生效

  <!--[if IE]>

  这段文字只在IE浏览器显示

  <![endif]-->

  只在IE6下生效

  <!--[if IE 6]>

  这段文字只在IE6浏览器显示

  <![endif]-->

  只在IE6以上版本生效

  <!--[if gte IE 6]>

  这段文字只在IE6以上(包括)版本IE浏览器显示

  <![endif]-->

  只在IE8上不生效

  <!--[if ! IE 8]>

  这段文字在非IE8浏览器显示

  <![endif]-->

  非IE浏览器生效

  <!--[if !IE]>

  这段文字只在非IE浏览器显示

  <![endif]-->

  (2)方式二 类内属性前缀法

  属性前缀法是在CSS样式属性名前加上一些只有特定浏览器才能识别的hack前缀,以达到预期的页面展现效果。

  IE浏览器各版本 CSS hack 对照表

    


说明:在标准模式中

“-″减号是IE6专有的hack

“\9″ IE6/IE7/IE8/IE9/IE10都生效

“\0″ IE8/IE9/IE10都生效,是IE8/9/10的hack

“\9\0″ 只对IE9/IE10生效,是IE9/10的hack

(3)CSS hack方式三:选择器前缀法

选择器前缀法是针对一些页面表现不一致或者需要特殊对待的浏览器,在CSS选择器前加上一些只有某些特定浏览器才能识别的前缀进行hack。


目前最常见的是


*html *前缀只对IE6生效*+html *+前缀只对IE7生效

@media screen\9{...}只对IE6/7生效

@media \0screen {body { background: red; }}只对IE8有效

@media \0screen\,screen\9{body { background: blue; }}只对IE6/7/8有效

@media screen\0 {body { background: green; }} 只对IE8/9/10有效

@media screen and (min-width:0\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;/*forfirefox*/
*background:red;/*forIE6*/(bothIE6&&IE7)
}

我在IE6中看到是红色的,在firefox中看到是绿色的。

  解释一下:

  上面的css在firefox中,它是认识不了后面的那个带星号的东西是什么的,于是将它过滤掉,不予理睬,解析得到的结果是:div{background:green},于是理所当然这个div的背景是绿色的。

  在IE6中呢,它两个background都能识别出来,它解析得到的结果是:div{background:green;*background:red;},于是根据优先级别,处在后面的red的优先级高,于是当然这个div的背景颜色就是红色的了。

热心网友 时间:2023-10-13 22:39

这是真对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; /*hacked for IE 6*/
}
再比如: id="bgcolor" 的控件要在 IE6 中显示蓝色, IE7 中显示绿色, Firefox 等其他浏览器中显示红色. #bgcolor {background:red !important; /* Firefox 等其他浏览器 */background:blue; /* IE6 */}*+html #bgcolor {background:green !important; /* IE7 */}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

热心网友 时间:2023-10-13 22:40

Vue实践-CSS样式position/display/float属性对比使用

热心网友 时间:2023-10-13 22:40

当两个以上元素浮动时,在ie6下有可能出现相邻的元素外边距计算错误,被算成正确尺寸的两倍

这时给出问题的元素加上display:inline;就可以解决修正这个问题,由于只有ie6有这个错误,所以前面加下划线_display:inline;让ie能识别,其他浏览器忽略。

热心网友 时间:2023-10-13 22:41

是针对IE6写的hack而已,也就是说只有IE6的情况下这个属性才会有效
所有浏览器 通用 height:100px;
IE6 专用 _height: 100px;
IE7 专用 *+height: 100px;
IE6、IE7 共用 *height:100px;
IE7、FF 共用 height: 100px!important;
例如:
#example { height:100px; } /*FF */
* html #example {height:200px; } /* IE6 */
*+html #example {height:300px; } /* IE7 */
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
热血江湖剑客怎么升级快些 三月份有哪些花开花 三月份有哪些花开花呢 三月什么花开的最旺盛呢 请问急性化脓性扁桃体炎期间可不可以食用巧克力? 扁桃体化脓吃什么消炎药 为什么扁桃体发炎或者化脓以后不能喝冷水或者吃辣的东西呢? 扁桃体化脓能吃冰淇淋吗 扁桃体化脓可以吃什么 炸酱面通常使用哪种面条? ...写一篇150词左右的英语短文。 Halloween(万圣节... 关于css中下划线的用法 css样式中怎么加入去下划线啊 怎样用CSS样式在文字下面加下划线 如何消除电话号码的标记 苹果6手机通讯录怎么倒入卡里 一般新手学习ae大概要多久才能入门? 新手零基础如何快速学会网络营销? 怎样学好新媒体 新媒体运营应该怎样学习 新手入门新媒体运营的话,选择哪些岗位比较好啊? 新媒体运营:如何能正确的入门新媒体 新手如何入门新媒体运营岗位 自媒体哪个好,一分钟认识自媒体领域 想学自媒体怎么入门? 新手如何做自媒体? 苹果6怎么把联系人导到卡 一个身份证就能验证一个快手直播嘛? 快手直播权限有了,但是身份证没了,用别人的身份... 快手直播可以用家人身份证开通直播权限吗? 快手直播怎么更改身份证 如何用CSS改变上划线,下划线以及删除线的颜色 css中在display前面加下划线是什么作用! 如何用css设置每个标题下方都有下划线 大额资金如何配置基金 怎么买基金?高手们来谈谈基金! 我准备投资1000万做投资买基金,请指教! 如何买基金?怎么买赚钱? 怎么买基金?必须开户吗? 怎么买基金 请问如何买基金??具体费用手续又如何最好有实例! 新手买基金有何方法? 请高手告诉我该如何买基金 买基金定投在这方面要考虑哪些方面? 想学习如何买基金 什么是基金?怎样买啊?程序是怎么样的啊?怎样弄才是... 中秋随笔600字 中秋的随笔 中秋节随笔300字 简单点 关于中秋节 随笔 随笔 中秋 400字左右