解决CSS在不同浏览器的差别

Bug,我们可以采用!important来解决这个问题,

!important是CSS1就定义的语法,作用是提高指定样式规则的应用优先权。语法格式{ sRule!important },即写在定义的最后面,如:例:box{color:red !important;} IE不能认识!Important,但是其它的浏览器都认识此标识,因此,我们 可以利用这个特性来兼容浏览器,如
.Box{
padding-left:20px !important  /*非IE浏览器的*/
padding-left:10px;/*IE浏览器*/

}
但是在IE7.0中又已经可以识别!import了,所以又会出布局的差错问题,那么又该如何去解决了呢?上网搜索了一下,找了些例子来看看,
现在我大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导 致页面没按要求显示!搜索了一下,找到一个针对IE7不错的hack方式就是使用“*+html”,现在用IE7浏览一下,应该没有问题了。

现在写一个CSS可以这样:
#example { color: #333; } /* Moz */
* html #example { color: #666; } /* IE6 */
*+html #example { color: #999; } /* IE7 */

那么在firefox下字体颜色显示为#333,IE6下字体颜色显示为#666,IE7下字体颜色显示为#999,他们都互不干扰。

css Hacks,css样式表补丁.用于修正XHTML编码设计的网页模板布局,某些层的溢出问题,HACKS出处:  www.webdevout.net,这个CSS补丁(hacks)很简单,在样式表中单独为ie7设置某个元素,id或者class前面这 样写:

*:first-child+html #ID{}

或者

*:first-child+html .class{}
别忘掉了前面的*,这个hacks使得DIV+CSS网页模板在ie5+,ie6,ie7,firefox 1.5,firefox 2的浏览器中都可以完美体现原始布局,而不会出现层溢出等问题.

IE7 修复了很多 bug,也增加了对一些选择符的支持,所以现在诸如 *html {} 和 html>body {} 等针对 IE 隐藏或显示的 hack 都会在 IE7 中失效。虽然 CSS Hack 不推荐使用,条件注释才是万无一失的过滤器,但是条件注释只能出现在 HTML 中,CSS Hack 还是有用武之地的。Nanobot 发现了一些针对 IE7 的 CSS Hack,具体就是:

>body
html*
*+html

这三种写法,其中前两种都是不合法的 CSS 写法,在标准兼容浏览器中被被忽略,但是 IE7 却不这么认为。对于 >body ,它会将缺失的选择符用全局选择符 * 代替,也就是将其处理成了 *>body,而且不光对于 > 选择符,+,~ 选择符中这个现象也存在。对于 html* ,由于 html 和 * 之间没有空格,所以也是一种 CSS 语法错误,但 IE7 不会忽略,而是错误地认为这里有一个空格。对于第三种 *+html,IE7 认为 html 前面的 DTD 声明也是一个元素,所以 html 会被选中,这三种方法中只有这一种方法是合法的 CSS 写法,也就是说可以通过校验器的验证,因此也是作者推荐的 hack 用法。最后作者给出了最佳方式:

IE 6 and below 
Use * html {} to select the html element. 
IE 7 and below 
Use *+html, * html {} to select the html element. 
IE 7 only 
Use *+html {} to select the html element. 
IE 7 and modern browsers only 
Use html>body {} to select the body element. 
Modern browsers only (not IE 7) 
Use html>/**/body {} to select the body element. 



The IE7 CSS Hack(!important在ie7.0的hack方法)

由于ie对!important识别存在bug,而现在大部分网页标准设计师又通过这个bug来兼容ie和ff,但是ie7.0把这个bug给修复了,所 以问题又出现了,怎么兼容ie.7.0的同时又能兼容ie6.0和ff?正所谓"上有政策,下有对策",国外的网页标准设计师通过使用css filter的办法(并不是css hack)来兼容ie7.0,ie6.0和ff,以下为作者从国外网站的翻译.

新建一个css样式如下:
插入代码:


#item {
width: 200px;
height: 200px;
background: red;
}


新建一个div,并使用前面定义的css的样式:
插入代码:


<div id="item">some text here</div>


在body表现这里加入lang属性,中文为zh:
插入代码:


<body lang="en">


现在对div元素再定义一个样式:
插入代码:
[/code]
*:lang(en) #item{
background:green !important;
}
[/code]
这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式:
插入代码:


#item:empty {
background: green !important
}


:empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上,并在以下浏览器和操作系统下通过测试:


ie7 beta 2 preview/win
ie5.01+/win
firefox 1.5/win
opera 8.5/win & linux
netscape 7.01, 8/win
mozilla 1.7.12/win & linux
safari 2/mac
firefox 1.0.4/linux
epiphany 1.4.8/linux
galeon 1.3.20/linux

Screenshot of the IE7 css hack in IE7

Screenshot of the IE7 css hack in Firefox 1.5

按照远作者的说法其实这不能算是一种hack,应该属于filter,不过这似乎并不是最重要的,因为通过这个办法,我们又一次了解决IE6.0,IE7.0和其他浏览器之间的兼容性问题,而且使用:lang-filter这办法,在今后的一段时间内都会有用.

SAP 批量修改 工艺路线 和 BOM 1、在运维的过程中经常会遇到用户需要批量更改组件,或者是批量更改数量,还是组件里面的一些标识,当处理这些批量数据处理的业务时,BOM的批量更改一个想到的就是CS20,但是CS20当BOM需要替换的时候就不是很适用。当前工作区域:选择 SAP_ITEM 对BOM行项目进行变更,工艺路线也是可以批量更改的,根据实际的业务进行选择,我这里选择的就是BOM的组件变更。5、本博客将使用新的一种方式进行BOM的批量变更,标准的事务代码:CEWB对BOM进行批量更改。3、使用LSMW的方式进行BOM的批量更改。 阅读详情

相关推荐

Zemax实战:5步搞定牛顿望远镜光学设计(附球差优化技巧)

本文详细介绍了在Zemax OpticStudio中构建高精度牛顿望远镜光学系统的5步实战流程,包括初始参数设置、球差优化、折叠镜与遮光面配置等关键步骤。特别针对球差问题,提供了将主镜圆锥系数设为-1的优化方案,有效消除轴上弥散斑。通过3D视图和MTF分析验证,该系统可实现接近衍射极限的成像质量,适合天文观测等应用场景。

x8y9z0的博客 928

css样式初始化(消除浏览器差异)

开发中,为了消除部分标签在不同浏览器中的表现差异,将下列css样式作为引入的第一个css文件。 /* CSS Document */ html, body, div, span, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,abbr, address, cite, code,del, dfn, em, img, ins...

wuxiYmy的博客 740

LVDS接口总结--(0)LVDS硬件电路接口

xilinx LVDS接口硬件总结

zidan1412的博客 9720

各浏览器之间的css差异,常见IE兼容性问题

1、IE不支持模板字符串,需要兼容IE的项目,千万不要写模板字符串; 2、IE与谷歌等浏览器的默认字体不同,在css初始化样式的时候,最好设置一个默认字体; 3、IE9以下不支持flex布局; 4、有的IE版本不支持css设置值为none,可以写0; 5、background: url(…/images/member_right.gif) 0 -35px ; IE和chrome中 -35后面的’px’可要可不要,但是firefox则必需加上,Safari和Opera暂无测试; 6、padding属性;IE设

weixin_46020319的博客 1305

STM32定时器ARR寄存器详解:从‘水桶接水’到精准测速,你的PWM和编码器都靠它

本文深入解析STM32定时器ARR寄存器的核心原理与应用技巧,从PWM波形生成到编码器测速实战。通过水桶模型和硬件本质的比喻,揭示ARR如何作为定时器的'心跳节拍器',并详细探讨其在动态调频、死区时间配置和高精度PWM中的关键作用。特别针对编码器模式下的ARR配置和溢出补偿算法进行优化建议,帮助工程师提升系统性能和实时性。

weixin_33734785的博客 379

基于ESP32-S3与PCM5102的HiFi网络收音机复刻指南:从硬件设计到软件配置

本文提供了一份详细的基于ESP32-S3与PCM5102的HiFi网络收音机复刻指南。内容涵盖从核心硬件选型(如ESP32-S3主控与PCM5102 DAC芯片)、四路独立LDO供电设计,到软件环境配置、固件烧录及常见问题调试的全过程,旨在帮助创客打造一台支持网络电台、本地播放与蓝牙连接的高保真音频播放器。

weixin_30632267的博客 186

html浏览器边框颜色,CSS设置字体和边框颜色时Chrome和其他主流浏览器差别的问题_html/css_WEB-ITnose...

a.toregister:link {text-decoration:none;width:90px;height:40px;font-family:"黑体" ;font-weight: bold;border:1px solid #cccccc;color:rgb(100,100,100);background-color:#d1d2d3;position:absolute;left:1348p...

weixin_28712491的博客 338

深入解析Buck开关电源中的死区时间设计及其对系统性能的影响

本文深入解析了Buck开关电源中死区时间的设计原理及其对系统性能的关键影响。死区时间通过防止上下管同时导通来避免穿通电流,确保系统安全。文章详细探讨了其工作机制、设置时的效率与安全权衡,以及不当设置对效率、稳定性和EMI的连锁反应,并提供了基于实测的调试方法与实战案例。

Apple的专栏 1129

css统一各浏览器样式,页面布局(CSS):统一浏览器的基础样式《 从设计到代码:布局设计 》...

不同浏览器针对 html 标签都有各自预设的一些样式,我们可以想办法统一一下这些基础样式。先这样试一下,在这个 html 的 body 标签里输入一组 div 。然后打开 page.css, 设置一下 div 标签的样式,把高度设置成 96px ,再用 background 设置一下背景颜色。你会发现,这个 div 容器的周围会留出一点空间,这是因为浏览器在 body 标签上用了一点边距。我们可以...

weixin_39588209的博客 1124

储能电池管理系统介绍(一)

介绍储能BMS的架构以及各模块功能

manjixingkong1234的专栏 1916

手把手教你学GPU的KMD专栏--3.4 中断处理机制与优化

记住,中断处理是GPU与CPU通信的"桥梁",没有高效的中断处理,GPU的性能将无法充分发挥。KMD通过"快进快出"原则、事件标志机制、GPU本机围栏等技术,实现高效、低延迟的中断处理。:GPU本机围栏机制允许GPU在满足特定条件(如围栏值达到某个阈值)时才触发中断,而不是每次围栏更新都触发中断,从而显著减少CPU唤醒次数,降低功耗。正如Microsoft GPU架构师在2022年WinHEC大会上指出:"没有好的中断处理,再强大的GPU也会被系统延迟拖垮。:多个GPU设备共享中断,导致中断处理混乱。

MHD0815的博客 112

CSS在IE和Nascape的显示差别

Web建造者要对付的最棘手情况之一是:相同的CSS代码被不同的浏览器解释后会生成不同的效果。在以前,各种不同的浏览器生成极其不同的页面是随处可见的,而现在我们可以用所谓的符合标准的浏览器获得更好的效果。然而,显示效果的差别还是无法避免。当前处于领导地位的一些浏览器在处理浮动效果上就存在着这样的差别。如果有人想创建一个能够随着浏览器窗口的大小变化而动态更改大小多栏的布局,那么这将是一个特别麻烦的

Wish神思者的专栏 1400

如何卸载Gazebo与重装

gazebo是一款关于车辆和无人机的仿真软件,本文大致介绍它是何物,以及他的安装和卸载方法,对于ROS开发者,本文有一定参考意义。

gongdiwudu的专栏 1万+

DIV+CSS网页中IE和火狐兼容问题的整理

文章转自:http://www.daokr.cn/article/html/493.html DIV+CSS构建网站时常会出现浏览器不兼容的问题,下面整理了一些常见不兼容问题,及解决办法! 1、用!important解决IE和Mozilla的布局差别 !impo

为了忘却的专栏 463

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

火狐与IE兼容性问题的解决方法

在构建网站时常会出现浏览器不兼容的问题,下面整理了一些常见不兼容问题,及解决办法! 1、用!important解决IE和Mozilla的布局差别     !important是CSS1就定义的语法,作用是提高指定样式规则的应用优先权,最重要的一点是:IE一直都不支持这个语法,而其他的浏览器都支持。因此我们就可以利用这一点来分别给IE和其他浏览器不同的样式定义,例如,我们定义这

muzi_hao的专栏 1516

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

前端必看:为什么同一段 CSS 在不同浏览器显示不一样?附解决方案和实战代码

摘要 前端开发常遇到跨浏览器样式不一致问题,主要由于浏览器内核差异、CSS标准支持不同和默认样式区别导致。解决方案包括:1)使用normalize.css统一默认样式;2)添加厂商前缀兼容旧浏览器;3)通过@supports实现渐进增强。建议根据用户群体选择性适配,利用Autoprefixer等工具减轻维护负担,以标准代码为主,兼容代码为辅。

m0_74456227的博客 1572

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Firefox, IE等不同浏览器对JavaScript,CSS不同解析问题

转载自:http://www.cnblogs.com/Mainz/archive/2009/05/23/1487663.html 前几个月做了个项目,对javascript,css在不同的浏览器显示和执行问题真是头痛不已,今天特在网上搜了一下,将这些资料汇总一下,这个资料都来自网上,恕不一一指明出处. 一.针对不同浏览器css的写法有两种方法: 1.用*号和_下划线来区分,如下...

dielianhuan1546的博客 169

CSS、JS在不同浏览器的兼容性问题

1.css在不同浏览器下显示效果不同 firefox和IE对某些css样式的认定有不少区别,包括: ul和ol的默认padding值是不一样的,在Firefox中,padding-left默认值为40px左右,而IE中为0,只能将它们指定为20px才保证在两个浏览器中显示效果一样;对字体大小small的定义不同,Firefox中为13px,而IE中为16px,差别挺大,也只能设置为14px

1951

javascript、css对不同浏浏览器的解决

前几个月做了个项目,对javascript,css在不同的浏览器显示和执行问题真是头痛不已,今天特在网上搜了一下,将这些资料汇总一下,这个资料都来自网上,恕不一一指明出处.一.针对不同浏览器css的写法有两种方法:   1.用*号和_下划线来区分,如下:       background:orange;*background:green;_background:blue;     

huangbomeizi的专栏 1930

pc端不同浏览器兼容性问题及解决方案

代码兼容:IE7及以上,360浏览器,搜狗浏览器,谷歌,火狐,欧朋等等。 一.需要注意的地方: 1.写好标准头: 2.首先引入初始化css,保证消除不同浏览器的细微差别。 具体内容: *{margin:0;padding:0;} body{font-size:12px;line-height:25px;font-family:Arial,Helvetica,“Microsoft YaHei”...

gao000000的博客 5639

不同浏览器的CSS Hacks技术

由于不同的浏览器对于CSS的实现

陈小峰(iefreer)的专栏 2012

CSS Hack区别不同浏览器的写法

我们在开发DIV+CSS页面时候常常会遇到开发出的网页的一些地方在各大浏览器比如微软IE6、微软IE7、微软IE8、火狐浏览器、谷歌浏览器有一些不同,如宽度、高度等地方有相差误。 IE6比较老的版本浏览器,用户比较多, IE7较新浏览器,更接近标准浏览器, IE8算是微软标准浏览器,但差别于浏览器, 火狐(Mozilla,Firefox)和谷歌浏览器(chrome)是比较标准的IE浏览器,

fengxinzi_jing的专栏 1201

ie浏览器样式兼容写法_CSS hack兼容不同浏览器的写法

我们在拓荒DIV+CSS页面时刻往往会碰到开收回的网页的一些中央在各大阅读器好比微软IE6、微软IE7、微软IE8、火狐阅读器、google浏览器有一些不合,如宽度、高度等处所有相差误。IE6相比老的版本涉猎器,用户比照多,IE7较新涉猎器,更濒临尺度阅读器,IE8算是微软标准浏览器,但差别于涉猎器,火狐(Mozilla,Firefox)和google涉猎器(chrome)是比拟规范的IE浏览器...

weixin_39739170的博客 239

用CSS解决IE和Firefox的差别

在IE和其他(Mozilla、Opera等)浏览器里显示的效果常常会偏差2px。这是IE6.0对盒之间的距离解释的Bug,我们可以采用!important来解决这个问题,!important是CSS1就定义的语法,作用是提高指定样式规则的应用优先权。语法格式{ sRule!important },即写在定义的最后面,如:例:box{color:red !important;} IE不能认识!I

关注技术 1943

html在不同浏览器文字不同,用 CSS3 指定网页的中英文分别使用不同字体

为什么要分别给中英文指定不同字体?因为:1,一般的英文字体不带中文,中文必须用不同的字体显示;2,一般的中文字体虽然会带英文,但往往比较难看,比专门的英文字体难看得多。所以,需要中英文用不同的字体显示。现在通常的做法是,在 CSS 里,把英文字体名字写在前面,中文字体名字写在后面。比如百度首页是这么写的:body{ font-family: arial, 宋体, sans-serif; }这样,理...

weixin_42298412的博客 644

Opera、FireFox、IE、Safari中CSS差别及兼容CSS的解决方法

一、CSS HACK以下两种方法几乎能解决现今所有HACK. 1, !important 随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) #wrapper { width: 100px!important; /* IE7+FF */ width: 80px; /* IE6 */ } 2, IE6

nathanhuang1220的专栏 9465
上一篇: JSON 基础
下一篇: JavaScript 面向对象编程,可以多继承
普通网友
博客等级 码龄21年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值