2023年6月21日发(作者:)

a叶技2012年第25卷第8期 Electronic Sci.&Teeh./Aug.15.2012 CSS浏览器兼容性问题研究 宋玉伟,李隐峰,齐 鹏 (西安电子科技大学电子工程学院,陕西西安摘要710071) 针对层叠样式表浏览器兼容问题,文中分别从浏览器、兼容问题解决技巧和CSS调试3个方面入手。首 先介绍常用浏览器;接着列出常见CSS浏览器兼容问题,并给出了解决方法;最后介绍两种界面设计者常用的检验工 具:IETester和Firefug。 关键词CSS;浏览器;兼容性;1ETester;Firefug TP393.092 文献标识码A 文章编号1007—7820(2012)08—147—03 中图分类号Study on Browsers Compatibility of Cascading Style Sheets SONG Yuwei,LI Yinfeng,QI Peng (School of Electronic Engineering,Xidian University,Xi’an 710071,China) Abstract This paper approaches the browsers compatibility problems of CSS from three aspects:browser,SO— lution to compatibility problem and CSS debugging.First it introduces commonly used browsers,and then it enumer- ates some CSS browser compatibility problems and gives the solution.Finally it presents two common inspection tools for CSS:IETester and firefug. Keywords CSS;browser;compatibility;IETester;firefug 因浏览器开发者对CSS国际通用标准W3C (World Wide Web Consortium)理解不同,而导致同一 Traveler);360安全浏览器;搜狗浏览器(Sougou Explorer)等。 (2)Mozilla Firefox(火狐)浏览器。Firefox是由 Mozilla公司开发的一个开源浏览器,它能够跨多个操 作系统,此外还具有体积小、速度快等优点。这款免费 的开源浏览器也占据着很大的市场份额。 网页在不同的浏览器中呈现不同的效果,即所谓的浏 览器兼容问题。若界面设计者能够周全地考虑兼容问 题,不仅能体现其技术水平,也是对其网站用户负责的 一种态度 。 1 常用浏览器介绍 浏览器是万维网(Web)服务的客户端浏览程序, 2 CSS浏览器兼容性问题分析与解决 (1)各浏览器的内外补丁默认值不同。在网页中 随便写几个标签,如果对其不加任何样式控制,在各种 可向万维网服务器发送各种请求,并对从服务器发来 的超文本信息和各种多媒体数据格式进行解释、显示 和播放。 浏览器下显示的效果就会有较大差别。这是因为各浏 览器padding和margin默认值不同。这是最常见的浏 览器兼容性问题,解决方法就是在CSS(Cascading Style Sheet,css)文件开头用通配符 设置各个标签的 几种常用浏览器: (1)IE(1nternet Explorer)浏览器。介绍是由 Microsoft公司开发,因其捆绑在Windows系统中,并且 是免费推出,所以占据着绝大部分的市场份额。目前, IE浏览器使用较多的版本是IE6.0、IE7.0、IE8.0以及 IE9.0。以IE为内核的常见浏览器:世界之窗(The 内外补丁为0,即 {margin:0;padding:0;} j。 (2)margin加倍的问题。块属性标签被设置float 后,如果又有横向的margin,在IE6.0中显示的margin 值将是设置值的2倍。这是IE6.0的一个常见bug,是 lfoat布局中最常见的兼容性问题。解决方法是在div 标签样式控制中加入display:inline;将其转化为行内 属性 。 World);傲游浏览器(Maxthon);腾讯TF(Tencent 收稿日期:2012—02—21 作者简介:宋玉伟(1986一),女,硕士研究生。研究方向: 网络信息处理,Web信息系统,数据库系统。李隐峰 (1974一),男,副教授,硕士生导师。研究方向:Web信息 例如:<div id=“testl”>相应的CSS代码为:# testl{float:left;margin:10 px 0 0 10 px;}。在不同的 浏览器下显示如图1和图2所示;当样式表中加入 display:inline;后,IE6显示效果如图2所示。 系统,网络安全,计算机网络教学与应用。 www.dianzikeji.oral—— 147 宋玉伟,等:CSS浏览器兼容性问题研究 min—height:500 px;,但它在IE6.0浏览器中不能被识 别。解决方法是{min—height:500 px:height:auto! important;height:100 px;overlfow:visible;} (6)div的居中问题。如果要让一个具有一定宽 图1 IE6.0下左边距变为20 px 度的div(<div id:“container”>…</div>)在IE浏 览器中水平居中显示,只需用body{text—align: center;}#container{width:800 px;},但这在Firefox浏 览器下却不能实现。解决方法是将CSS代码改为 body{text—align:center;}#container{width:800 px; margin:0 auto;text—align:left;}。 图2 IE7.0/IE8.0/FF下效果 (7)ul和0l标签的padding与margin问题。ul和 0l标签在Firefox浏览器中默认是有padding值的,而 在IE浏览器中只有margin默认有值。这样只要先定 义ul(或o1){margin:0;padding:O;}即可。 (3)无法定义较小高度的容器。在IE6.0、IE7.0 及遨游浏览器中,定义较小高度的标签,这个标签的高 度不受控制,超出设置的高度。出现这个问题的原因 是IE8.0之前的浏览器都会给标签一个最小默认的行 (8)利用CSS Hack。根据不同的浏览器对CSS的 支持及解析结果不同样,CSS中的优先级不同,可以对 不同的浏览器写不同的CSS,这就是CSS Hack的工作 原理 一 。 高的高度。即使标签是空的,高度还是会达到默认的 行高。解决方法是给超出高度的标签设置overflow: hidden;或者设置line—height小于设置的高度。 首先需要了解以下规则: background:red;//所有浏览器通用 一(4)图片默认有间距。将几个img标签放在一起 时,由于img标签属于行内属性的标签,只要不超过容 器宽度,img标签都会在一行中显示。但在某些浏览器 下图片之间会存在空隙,即使加了通配符 {margin:0; padding:0;}也不起作用。要去掉这个间距应使用float 属性为img布局,虽然使用负margin也能够解决,但由 于负margin本身就很容易引起浏览器兼容性问题,所 以不建议使用。 background:red;//“”IE6.0浏览器专用 background:red;//“:l:”、IE6.0、IE7.0共用, IE8.0、firefox均不能识别 background:red !important;//“!important” Firefox、IE7.0、IE8.0浏览器共用 其次,还需了解CSS代码的优先级,!important的 优先级最高,行内样式次之,ID选择器再次之,类选择 (5)标签最小高度min—height不兼容。当一个标 器更次之,标签选择器最低。对于优先级相同的按后 出现优先原则。 目前比较全的CSS Hack浏览器兼容性如表2 所示 。 签的内容高度小于一个值(如500 px)时,这个标签的 高度为500 px。而当内容高度>500 px时,容器高 度等于内容的高度,而不出现滚动条。这时需要用到 表1 浏览器CSS选择器兼容性一览表 l48 w w w Oianzikeji oro 宋玉伟,等:CSS浏览器兼容性问题研究I|葛匿重圈 注:、/表示目前支持;△表示浏览器部分支持当前CSS选择器;X表示浏览器完全不支持。 仅方便了网页的调试,其编辑、挪动区块位置、可视化 3 IETester与Firebug (1)IETester。针对IE浏览器的不同版本,界面设 标尺能够为CSS学习者提供有效的帮助。 4 结束语 集中介绍了常用浏览器、CSS兼容性问题、解决方 法和两种CSS调试工具,并且举例说明网页设计中经 常遇到的CSS样式表在不同浏览器下的兼容性问题及 计者均需查看网页的显示效果,若在自己的机器上安装 各种版本的浏览器,较为复杂。IETester是免费软件,是 IE浏览器兼容性测试工具,它同时包括了IE 5.5、 IE6.0、IE7.0、IE8.0、IE9.0的所有内核,可在IETester中 查看不同IE版本的页面显示效果,以保证测试的页面 可在各版本IE浏览器中正确显示。 (2)Firebug。Firebug是Firefox浏览器的一个插 件,集网站语言查看与编辑、控制台、网络状况监视器 其解决方法,并总结了浏览器兼容性。 参考文献 [1]张志洁,李书明,赵玲.CSS技术在网页设计中的应用探 析[J].网络通讯与安全,2007(10):3O一36. [2] RACHEL A.CSS精粹[M].丁卫颖,李奕,吴戈,译.北京: 人民邮电出版社。2007. 于一体,是开发调试JavaScript、CSS、HTML等网站语 言的助手工具。 瀚 ≤ [3] 巩恩伟.CSS在浏览器中的兼容性及使用技巧[J].电脑 知识与技术,2009,5(6):1413—1414. [4] 黎亚红,罗藤.CSS在不同浏览器中的兼容性问题浅析 [J],岳阳职业技术学院院报,2008,23(3):84—86. [5]CBRISTOPBER S.CSS Cookbook[M].陈寒林,译.北京: 电子工业出版社,2007. 图3 Firebug界面:CSS查看器 这里介绍的Firebug的CSS调试器,查看器能够列 出页面调用的每一个CSS样式表:定义位置、详细CSS 代码及其从属继承关系。用户可在该查看器中直接添 [6] Bingo.浏览器/CSS选择器兼容性总结[EB/OL].(2010 —加、修改、删除CSS样式表属性,当前页面即可直接显 示编辑后的页面效果。Firebug的CSS查看器的功能不 1O—O4)[2012—01一O5]http://blog.bingo929.com/ess browser—support.htm1. —WWW.diatlzikP ̄ji.0rg—— 149 

2023年6月21日发(作者:)

a叶技2012年第25卷第8期 Electronic Sci.&Teeh./Aug.15.2012 CSS浏览器兼容性问题研究 宋玉伟,李隐峰,齐 鹏 (西安电子科技大学电子工程学院,陕西西安摘要710071) 针对层叠样式表浏览器兼容问题,文中分别从浏览器、兼容问题解决技巧和CSS调试3个方面入手。首 先介绍常用浏览器;接着列出常见CSS浏览器兼容问题,并给出了解决方法;最后介绍两种界面设计者常用的检验工 具:IETester和Firefug。 关键词CSS;浏览器;兼容性;1ETester;Firefug TP393.092 文献标识码A 文章编号1007—7820(2012)08—147—03 中图分类号Study on Browsers Compatibility of Cascading Style Sheets SONG Yuwei,LI Yinfeng,QI Peng (School of Electronic Engineering,Xidian University,Xi’an 710071,China) Abstract This paper approaches the browsers compatibility problems of CSS from three aspects:browser,SO— lution to compatibility problem and CSS debugging.First it introduces commonly used browsers,and then it enumer- ates some CSS browser compatibility problems and gives the solution.Finally it presents two common inspection tools for CSS:IETester and firefug. Keywords CSS;browser;compatibility;IETester;firefug 因浏览器开发者对CSS国际通用标准W3C (World Wide Web Consortium)理解不同,而导致同一 Traveler);360安全浏览器;搜狗浏览器(Sougou Explorer)等。 (2)Mozilla Firefox(火狐)浏览器。Firefox是由 Mozilla公司开发的一个开源浏览器,它能够跨多个操 作系统,此外还具有体积小、速度快等优点。这款免费 的开源浏览器也占据着很大的市场份额。 网页在不同的浏览器中呈现不同的效果,即所谓的浏 览器兼容问题。若界面设计者能够周全地考虑兼容问 题,不仅能体现其技术水平,也是对其网站用户负责的 一种态度 。 1 常用浏览器介绍 浏览器是万维网(Web)服务的客户端浏览程序, 2 CSS浏览器兼容性问题分析与解决 (1)各浏览器的内外补丁默认值不同。在网页中 随便写几个标签,如果对其不加任何样式控制,在各种 可向万维网服务器发送各种请求,并对从服务器发来 的超文本信息和各种多媒体数据格式进行解释、显示 和播放。 浏览器下显示的效果就会有较大差别。这是因为各浏 览器padding和margin默认值不同。这是最常见的浏 览器兼容性问题,解决方法就是在CSS(Cascading Style Sheet,css)文件开头用通配符 设置各个标签的 几种常用浏览器: (1)IE(1nternet Explorer)浏览器。介绍是由 Microsoft公司开发,因其捆绑在Windows系统中,并且 是免费推出,所以占据着绝大部分的市场份额。目前, IE浏览器使用较多的版本是IE6.0、IE7.0、IE8.0以及 IE9.0。以IE为内核的常见浏览器:世界之窗(The 内外补丁为0,即 {margin:0;padding:0;} j。 (2)margin加倍的问题。块属性标签被设置float 后,如果又有横向的margin,在IE6.0中显示的margin 值将是设置值的2倍。这是IE6.0的一个常见bug,是 lfoat布局中最常见的兼容性问题。解决方法是在div 标签样式控制中加入display:inline;将其转化为行内 属性 。 World);傲游浏览器(Maxthon);腾讯TF(Tencent 收稿日期:2012—02—21 作者简介:宋玉伟(1986一),女,硕士研究生。研究方向: 网络信息处理,Web信息系统,数据库系统。李隐峰 (1974一),男,副教授,硕士生导师。研究方向:Web信息 例如:<div id=“testl”>相应的CSS代码为:# testl{float:left;margin:10 px 0 0 10 px;}。在不同的 浏览器下显示如图1和图2所示;当样式表中加入 display:inline;后,IE6显示效果如图2所示。 系统,网络安全,计算机网络教学与应用。 www.dianzikeji.oral—— 147 宋玉伟,等:CSS浏览器兼容性问题研究 min—height:500 px;,但它在IE6.0浏览器中不能被识 别。解决方法是{min—height:500 px:height:auto! important;height:100 px;overlfow:visible;} (6)div的居中问题。如果要让一个具有一定宽 图1 IE6.0下左边距变为20 px 度的div(<div id:“container”>…</div>)在IE浏 览器中水平居中显示,只需用body{text—align: center;}#container{width:800 px;},但这在Firefox浏 览器下却不能实现。解决方法是将CSS代码改为 body{text—align:center;}#container{width:800 px; margin:0 auto;text—align:left;}。 图2 IE7.0/IE8.0/FF下效果 (7)ul和0l标签的padding与margin问题。ul和 0l标签在Firefox浏览器中默认是有padding值的,而 在IE浏览器中只有margin默认有值。这样只要先定 义ul(或o1){margin:0;padding:O;}即可。 (3)无法定义较小高度的容器。在IE6.0、IE7.0 及遨游浏览器中,定义较小高度的标签,这个标签的高 度不受控制,超出设置的高度。出现这个问题的原因 是IE8.0之前的浏览器都会给标签一个最小默认的行 (8)利用CSS Hack。根据不同的浏览器对CSS的 支持及解析结果不同样,CSS中的优先级不同,可以对 不同的浏览器写不同的CSS,这就是CSS Hack的工作 原理 一 。 高的高度。即使标签是空的,高度还是会达到默认的 行高。解决方法是给超出高度的标签设置overflow: hidden;或者设置line—height小于设置的高度。 首先需要了解以下规则: background:red;//所有浏览器通用 一(4)图片默认有间距。将几个img标签放在一起 时,由于img标签属于行内属性的标签,只要不超过容 器宽度,img标签都会在一行中显示。但在某些浏览器 下图片之间会存在空隙,即使加了通配符 {margin:0; padding:0;}也不起作用。要去掉这个间距应使用float 属性为img布局,虽然使用负margin也能够解决,但由 于负margin本身就很容易引起浏览器兼容性问题,所 以不建议使用。 background:red;//“”IE6.0浏览器专用 background:red;//“:l:”、IE6.0、IE7.0共用, IE8.0、firefox均不能识别 background:red !important;//“!important” Firefox、IE7.0、IE8.0浏览器共用 其次,还需了解CSS代码的优先级,!important的 优先级最高,行内样式次之,ID选择器再次之,类选择 (5)标签最小高度min—height不兼容。当一个标 器更次之,标签选择器最低。对于优先级相同的按后 出现优先原则。 目前比较全的CSS Hack浏览器兼容性如表2 所示 。 签的内容高度小于一个值(如500 px)时,这个标签的 高度为500 px。而当内容高度>500 px时,容器高 度等于内容的高度,而不出现滚动条。这时需要用到 表1 浏览器CSS选择器兼容性一览表 l48 w w w Oianzikeji oro 宋玉伟,等:CSS浏览器兼容性问题研究I|葛匿重圈 注:、/表示目前支持;△表示浏览器部分支持当前CSS选择器;X表示浏览器完全不支持。 仅方便了网页的调试,其编辑、挪动区块位置、可视化 3 IETester与Firebug (1)IETester。针对IE浏览器的不同版本,界面设 标尺能够为CSS学习者提供有效的帮助。 4 结束语 集中介绍了常用浏览器、CSS兼容性问题、解决方 法和两种CSS调试工具,并且举例说明网页设计中经 常遇到的CSS样式表在不同浏览器下的兼容性问题及 计者均需查看网页的显示效果,若在自己的机器上安装 各种版本的浏览器,较为复杂。IETester是免费软件,是 IE浏览器兼容性测试工具,它同时包括了IE 5.5、 IE6.0、IE7.0、IE8.0、IE9.0的所有内核,可在IETester中 查看不同IE版本的页面显示效果,以保证测试的页面 可在各版本IE浏览器中正确显示。 (2)Firebug。Firebug是Firefox浏览器的一个插 件,集网站语言查看与编辑、控制台、网络状况监视器 其解决方法,并总结了浏览器兼容性。 参考文献 [1]张志洁,李书明,赵玲.CSS技术在网页设计中的应用探 析[J].网络通讯与安全,2007(10):3O一36. [2] RACHEL A.CSS精粹[M].丁卫颖,李奕,吴戈,译.北京: 人民邮电出版社。2007. 于一体,是开发调试JavaScript、CSS、HTML等网站语 言的助手工具。 瀚 ≤ [3] 巩恩伟.CSS在浏览器中的兼容性及使用技巧[J].电脑 知识与技术,2009,5(6):1413—1414. [4] 黎亚红,罗藤.CSS在不同浏览器中的兼容性问题浅析 [J],岳阳职业技术学院院报,2008,23(3):84—86. [5]CBRISTOPBER S.CSS Cookbook[M].陈寒林,译.北京: 电子工业出版社,2007. 图3 Firebug界面:CSS查看器 这里介绍的Firebug的CSS调试器,查看器能够列 出页面调用的每一个CSS样式表:定义位置、详细CSS 代码及其从属继承关系。用户可在该查看器中直接添 [6] Bingo.浏览器/CSS选择器兼容性总结[EB/OL].(2010 —加、修改、删除CSS样式表属性,当前页面即可直接显 示编辑后的页面效果。Firebug的CSS查看器的功能不 1O—O4)[2012—01一O5]http://blog.bingo929.com/ess browser—support.htm1. —WWW.diatlzikP ̄ji.0rg—— 149