`
hgz123
  • 浏览: 108113 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

css解决IE6,IE7,firefox兼容性问题

阅读更多

欢迎访问: www.ptcms.cn

在当前IE6 IE7 FifeFox三分天下的情况下,浏览器兼容性问题成为网页设计者需要考虑的问题.   
区别不同浏览器的CSS hack写法:
区别IE6与FF:
        background:orange;*background:blue;
区别IE6与IE7:
        background:green !important;background:blue;
区别IE7与FF:
        background:orange; *background:green;
区别FF,IE7,IE6:
        background:orange;*background:green !important;*background:blue;

注:IE都能识别*;标准浏览器(如FF)不能识别*;

IE6能识别*,但不能识别 !important,
IE7能识别*,也能识别!important;
FF不能识别*,但能识别!important;

 

  IE6 IE7 FF
* ×
!important ×



------------------------------------------------------
另外再补充一个,下划线"_",
IE6支持下划线,IE7和firefox均不支持下划线。

于是大家还可以这样来区分IE6,IE7,firefox
: background:orange;*background:green;_background:blue;

注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。

 

 

 

1.css在不同浏览器下显示效果不同

firefox和IE对某些css样式的认定有不少区别,包括:

     * ul和ol的默认padding值是不一样的,在Firefox中,padding-left默认值为40px左右,而IE中为0,一般设置ul{margin:0;padding:0;}就能解决大部分问题
     * 对字体大小small的定义不同,Firefox中为13px,而IE中为16px,差别挺大,也只能设置为14px了事;(暂时没有发现)
     * 并列排列的多个元素(图片或者链接)的代码中的空格和回车会造成元素之间的间隙,而在firefox中和在IE中显示是不一样的,IE显示空格(约8px)、firefox显示空格(约4px)
     * 对不规范代码的兼容情况不同,IE中漏掉的关闭符号对显示不造成影响,而firefox中就会形成错乱的布局,而在ie中用到的padding和margin的负值都会被firefox解析为0,易造成布局的混乱;(我觉得好像负值在firefox中也是有显示的)
     * firefox对于长高尺寸的严格解析会造成与设置不匹配(超出)的图片或表格将原设置div撑大;
     * !important属性可以在除IE浏览器的其他浏览器中起作用,因此有人利用这种差别来令一个CSS兼容多种浏览器;
     * 未定义id的div,在IE中会与div属性中的其他设置有关,而在firefox中的位置会于div在文件中位置有关,紧随前一个div出现……(有待尝试)
     * 设置为float的div在ie下设置的margin会加倍的,特别是margin-left,这是ie6的一个bug。解决的方法是在这个div里面加上display:inline;
     * 如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。(似乎有时候不会自动往下撑开,不知道具体怎么回事)
     * FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行。IE里设置text-align:center,就居中了,但在FF中不行。所以一般两个都要设置。
     * FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width(也没感觉,觉得设了padding,大家的高宽都变了)
     * 在FF中可以实现的div 垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行。这种方法在IE中实现不了。(已试过!有用)
     * FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。
     * 在浮动(float)的div后加clear属性,这可以解决背景的自适应高度问题。怎么加才能让不同浏览器都好使?IE中有默认行高,这是要解决的问题。
     * FF中不支持文字的自动转行;什么word-wrap:break-word;word-break:break-all都是IE搞的鬼,根本就不符合css标准。(现在看到的解决办法都是通过编程实现)

2.css解决不同浏览器的兼容问题的方法 (不是我们需要的方法,我们要达到的要求是尽量不写!important也能解决)

解决这种问题可以通过规范css代码,使其符合两种规范的标准样式,也可以在差别处利用!important对firefox设置属性,或者针对多种浏览器分别各自配置合适的CSS文件,再通过判断浏览器选择不同CSS实现兼容性。

代码如下:

<!--[endif]-->

<!--[endif]-->

#example { color: #333; } /* FF*/
* html #example { color: #666; } /* IE6 */
*+html #example { color: #999; } /* IE7 */

这样在IE6中显示字体颜色是#666;在IE7中显示的字体颜色是#999;在FF中显示的颜色是#333

3.FF解决背景的自适应高度问题

①对于背景不能自动延伸的原因上面说的很清楚,解决方法是多嵌套一个层,这个层设置浮动,并承担背景,就ok了。
下面就简单示意一下

本行代码就是让背景颜色自动延续

可以这么理解:float使得层自动获得宽和高

但是有了第三种方法,这种方法好像并不值得推荐。

②另一种方法就是给第一个div赋予属性值:display:table;但这种方法会造成另外一些布局上的错误。可以考虑使用,但不建议使用。

③我想这是最重要的一种方法,但是中间问题很多。方法就是clear:both。

.clear{clear:both}可以使高度向下延续,但是会自动产生行高;

.clear{clear:both;height:0}在FF中清除了行高,但是IE里不认;

.clear{clear:both;height:1%}在FF和IE中仍然不认;

像之前写的.clear{clear:both;height:1%;font-size:0px;overflow:hidden}在IE中好使,但在FF中却不能让背景颜色延续,除非加上边框。!挺有意思,还是不太懂

.clear{clear:both;line-height:1px}好使!我理解是清的这个容器默认是行元素,所以高对它不起作用,所以你无论把height设置为几都没有效果,而line-height本身就是作用于行元素的,所以好使!

上面理解的不对!重新理解是:IE里面有默认的行高,必须把行高给清掉,可以用font-size:0px或line-height:0px;但是这里又有一个问题,就是height的值不要用百分数,没有用!

分享到:
评论

相关推荐

    css解决IE6,IE7,firefox兼容性问题.

    ### CSS解决IE6、IE7及Firefox兼容性问题详解 #### 一、引言 随着互联网技术的发展,浏览器种类日益增多,其中Internet Explorer (IE) 和 Firefox 是早期非常流行的两款浏览器。尤其在2000年代中期,IE6、IE7 和 ...

    IE6、IE7、IE8、Firefox兼容性CSS HACK代码+示例

    综上所述,CSS Hack技巧是解决跨浏览器兼容性问题的有效手段。通过理解各浏览器对特定符号的不同解析能力,开发者可以灵活调整样式,确保网站在不同环境中都能呈现出预期的效果。然而,随着现代浏览器的普及和旧版IE...

    CSS兼容大全IE5,IE5.5,IE6,IE7,Firefox,Opera,Safari等浏览器

    CSS 兼容大全 IE5,IE5.5,IE6,IE7,Firefox,Opera,Safari 等浏览器 CSS 兼容大全是指在不同的浏览器中,例如 IE5,IE5.5,IE6,IE7,Firefox,Opera,Safari 等,如何使网页正常显示的技术。这个技术的核心是 CSS Hack,即...

    IE6、_IE7、IE8、Firefox兼容性问题

    以下是一些解决IE6、IE7、IE8和Firefox兼容性问题的方法和知识点: 1. **条件注释和doctype声明**: 在HTML中,可以使用条件注释(Conditional Comments)来针对特定版本的IE应用特定的CSS或脚本。例如,`...

    CSS兼容IE6,,IE7,I8 FIREFOX

    本文将详细解析如何通过CSS技巧来解决跨浏览器兼容性问题,特别是针对IE6、IE7、8以及Firefox等浏览器的兼容性处理方法。 #### 二、CSS Hack概述 **CSS Hack**是一种特定的技术手段,用于编写能够被某些特定浏览器...

    CSS在IE6 IE7与FireFox下的兼容问题整理

    在Web开发中,CSS(层叠样式表)的兼容性问题一直是开发者面临的一大挑战,尤其是在早期的浏览器之间,如Internet Explorer (IE)的6、7版本和Firefox。这些浏览器对CSS标准的实现存在差异,导致在不同浏览器下页面...

    IE6.0、IE7.0 与FireFox CSS兼容的解决方法

    在网页设计中,CSS(层叠样式表)的兼容性问题常常困扰着开发者,尤其是在处理IE6.0、IE7.0与Firefox等不同浏览器之间的差异。以下是一些解决这些浏览器间CSS兼容问题的方法: 1. **DOCTYPE声明**:DOCTYPE声明会...

    IE6、IE7、Firefox之间的兼容写法

    本文将重点探讨IE6、IE7以及Firefox之间的CSS兼容性写法,帮助开发者更好地解决实际项目中的兼容性问题。 #### 二、CSS Hack技术概述 为了确保网页在不同浏览器中的表现一致,开发者常常会采用一种名为“CSS Hack”...

    如何解决IE兼容性问题

    ### 如何解决IE兼容性问题 在Web开发领域,确保网站在不同版本的Internet Explorer(以下简称IE)浏览器中能够正常显示是一项重要的工作。由于IE浏览器的版本差异导致了许多兼容性问题,这使得开发者不得不采取一...

    div+css 完全兼容 样式兼容性 ie6 ie7 IE8 IE9 和firefox方法

    然而,由于不同浏览器对CSS标准的支持程度不一,尤其是在IE6、IE7、IE8、IE9和Firefox之间存在兼容性问题,开发者需要采取特殊策略来确保页面在这些浏览器上正常显示。本文将深入探讨如何实现`div+css`的完全兼容。 ...

    IE与Firefox的CSS兼容大全

    在网页设计中,CSS(层叠样式表)的兼容性是一个关键问题,特别是对于历史悠久的Internet Explorer(IE)和相对现代的Firefox浏览器。由于这两者对CSS标准的解析方式不同,开发者经常面临兼容性挑战。以下是一些针对...

    解决CSS在IE与火狐下的兼容问题

    通过以上策略,你可以有效地解决CSS在IE和Firefox之间的兼容性问题,确保你的网站在各种浏览器下都能提供良好的用户体验。不断学习和实践,熟悉各种浏览器的特性,是成为一名优秀前端开发者的必经之路。

    css样式表兼容总结,兼容火狐,ie6,ie7,FF

    标题中的“css样式表兼容总结,兼容火狐,ie6,ie7,FF”指的是在网页设计中,CSS样式表需要处理不同浏览器之间的兼容性问题,特别是老版本的Internet Explorer(IE6和IE7)以及Firefox。描述中的“css样式表火狐,ie6,ie...

    div+css兼容ie6ie7ie8ie9和FireFoxChrome等浏览器方法[借鉴].pdf

    本文将深入探讨如何使CSS样式兼容IE6、IE7、IE8、IE9以及Firefox、Chrome等现代浏览器。 1. **DOCTYPE声明的影响**: DOCTYPE声明对于浏览器的渲染模式至关重要。在HTML文档的顶部加入正确的DOCTYPE,如`&lt;!DOCTYPE...

    如何让div+css兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器.pdf

    针对标题提及的"如何让div+css兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器",这里将详细讨论一些关键的CSS兼容性问题及解决方案。 1. **DOCTYPE的影响**: DOCTYPE声明会影响浏览器进入何种文档模式。在HTML4或...

    CSS样式兼容IE6、IE7、IE8、FF火狐浏览器的方法

    通过深入了解各浏览器的特性与限制,结合CSS Hack技巧和现代开发工具,可以有效地解决跨浏览器兼容性问题,确保网站在各种环境下都能提供一致的用户体验。虽然IE6、IE7和IE8的市场份额已大幅下降,但对于仍需支持...

    CSS完美兼容IE6_IE7_FF的通用方法

    通过上述介绍的方法和技术,可以有效地解决IE6/IE7/Firefox之间的兼容性问题。尽管现代Web开发已不再需要考虑这些老旧浏览器,但对于那些仍然需要维护的老项目来说,这些技巧依然非常重要。此外,随着前端框架和库的...

    针对firefox ie6 ie7 ie8的css样式hack

    通过上述介绍可以看出,针对Firefox、IE6、IE7和IE8的CSS Hack是一种有效的解决浏览器兼容性问题的方法。虽然这种方法增加了开发和维护的成本,但对于需要支持多个浏览器版本的项目来说仍然是必要的。在实际应用中,...

    让CSS兼容IE和Firefox的技巧集合

    标题中的“让CSS兼容IE和Firefox的技巧集合”是指在网页设计中,针对Internet Explorer(IE)和Firefox这两种浏览器之间CSS样式兼容性问题的解决策略。描述中的“嘿呌,IE不再是个bug”暗示了这些技巧能帮助开发者...

Global site tag (gtag.js) - Google Analytics