`
alert_mm
  • 浏览: 168768 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

CSS浏览器识别(兼容)问题(W3C)

阅读更多

常见兼容问题:

  1. DOCTYPE 影响 CSS 处理;
  2. Firefox: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行
  3. Firefox: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中
  4. Firefox: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width
  5. Firefox: 支持 !important, IE 则忽略, 可用 !important 为 Firefox 特别设置样式
  6. div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
  7. cursor: pointer 可以同时在 IE Firefox 中显示游标手指状, hand 仅 IE 可以
  8. Firefox: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。
  9. 在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:
    div{margin:30px!important;margin:28px;}
  10. 注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:
    div{maring:30px;margin:28px}
  11. 重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;
  12. IE5 和IE6的BOX解释不一致
  13. IE5下 div{width:300px;margin:0 10px 0 10px;}
    div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改
    div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}
  14. /**/IE5和firefox都支持但IE6不支持.
  15. ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 ul{margin:0;padding:0;} 就能解决大部分问题

 

 

注意事项:

  1. float的div一定要闭合:
    例如:
    (其中floatA、floatB的属性已经设置为float:left;)
    <#div id=”floatA” > <#div id=”floatB” > <#div id=”NOTfloatC”> 
     这里的NOTfloatC并不希望继续平移,而是希望往下排。这段代码在IE中毫无问题,问题出在Firefox。原因是NOTfloatC并非float标签,必须将float标签闭合。

            

          在 <#div class=”floatB”> <#div class=”NOTfloatC”> 之间加上 <#div class=”clear”>     

     

    这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。并且将clear这种样式定义为为如下即可: .clear{ clear:both;} 此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden; 当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性,用zoom:1;可以做到,这样就达到了兼容。                                          例如某一个wrapper如下定义:
    .colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}
  2. margin加倍的问题。 设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的问题。
  3. 解决方案是在这个div里面加上display:inline;
  4. 例如:
    <#div id=”imfloat”> 相应的css为 #IamFloat{ float:left; margin:5px;/*IE下理解为10px*/ display:inline;/*IE下再理解为5px*/}
  5. 关于容器的包涵关系: 很多时候,尤其是容器内有平行布局,例如两、三个float的div时,宽度很容易出现问题。在IE中,外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。
  6. 关于高度的问题: 如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。(似乎有时候不会自动往下撑开,不知道具体怎么回事)
  7. !important; 如果实在没有办法解决一些细节问题,可以用这个方法.Firefox对于”!important”会自动优先解析,然而IE则会忽略.
    如下:
    .tabd1{ background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for Firefox*/ background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}
    值得注意的是,一定要将xxxx !important 这句放置在另一句之上。
2
0
分享到:
评论

相关推荐

    css浏览器兼容问题

    ### CSS浏览器兼容问题详解 #### 一、引言 随着Web技术的发展,不同的浏览器对于CSS的支持程度也有所不同,这导致了在开发过程中经常会遇到浏览器之间的兼容性问题。本文旨在总结和分享一系列关于CSS兼容性的技巧...

    CSS常见浏览器兼容问题

    - IE的盒模型问题:IE使用的是包含边距的盒模型,而其他浏览器遵循W3C标准。可以通过`box-sizing:border-box`或`*{box-sizing:border-box}`修复。 - IE6的双倍边距问题:针对浮动元素的`display:inline`可解决。 ...

    最全的CSS浏览器兼容问题

    【CSS浏览器兼容问题详解】 在Web开发中,CSS(层叠样式表)是用于控制网页元素样式的关键技术,但不同的浏览器对其支持程度不一,尤其是老版本的IE(Internet Explorer)浏览器,如IE7和IE6,它们经常会出现一些...

    同浏览器CSS样式兼容问题

    总之,处理CSS浏览器兼容问题需要开发者对各种浏览器的特性有深入理解,同时灵活运用各种技巧和工具。随着现代浏览器对W3C标准支持的提升,这个问题已经得到一定缓解,但仍需要开发者时刻关注新出现的兼容性问题,以...

    DIV+CSS浏览器兼容问题解决方法

    【CSS浏览器兼容问题详解】 在Web开发中,CSS(层叠样式表)是用于控制网页元素样式的关键技术。然而,由于不同的浏览器对CSS规范的实现存在差异,导致了所谓的“浏览器兼容性问题”。特别是对于使用DIV+CSS布局的...

    解决CSS浏览器兼容性问题的4种方案

    本文将探讨解决CSS浏览器兼容性问题的四种策略。 首先,我们可以采取**浏览器CSS样式初始化**。由于不同浏览器对CSS的默认样式处理方式不同,初始化样式可以确保所有元素在开始时具有统一的基础样式。例如,常用的...

    CSS解决浏览器兼容的方法

    3. **使用`盒模型`调整**:IE6-8使用不同的盒模型(内容+边框+内填充),而其他浏览器遵循W3C标准盒模型(内容+内填充+边框)。可以通过`box-sizing`属性调整,但旧版IE不支持,可使用`*{box-sizing:border-box;}`...

    DIV+CSS解决各浏览器兼容问题

    此外,使用特殊选择器如`*`和`+`可以区分IE和FF的识别,其中`*`仅被IE识别,而`+`则仅被FF识别,这在处理特定浏览器的兼容性问题时非常有用。 #### 5. 浮动元素的清除 在布局中使用浮动时,如果不进行适当的清理,...

    关于CSS/DIV在各浏览器兼容代码

    - **使用现代Web标准**:遵循W3C制定的标准,减少浏览器间的差异。 - **前缀适应**:对于CSS3新特性,添加浏览器特定前缀(如`-webkit-`、`-moz-`等)。 - **使用工具自动处理**:例如Autoprefixer等工具可以帮助...

    兼容各浏览器 CSS回到顶部代码

    ### 兼容各浏览器的CSS回到顶部代码解析 在网页设计与开发中,为了提高用户体验,许多网站都配备了“回到顶部”按钮。本篇文章将基于提供的文件内容,深入解析一个兼容于各大主流浏览器的CSS回到顶部功能实现方法,...

    css入门教程IE和Firefox浏览器CSS兼容性技巧整理.docx

    使用在线工具如W3C CSS验证器来检查CSS代码,找出可能引发兼容性问题的错误。 总的来说,解决CSS兼容性问题需要对各个浏览器的解析规则有深入理解,并灵活运用各种技巧和工具。持续学习和实践是保持与时俱进的关键...

    CSS多浏览器兼容性[定义].pdf

    1. **DOCTYPE声明**:为了确保浏览器按照W3C标准解析CSS,应在文档的顶部添加DOCTYPE声明。例如,`&lt;!DOCTYPE html&gt;`可以用于XHTML或HTML5文档,以启用标准模式,避免因quirks模式导致的兼容性问题。 2. **CSS技巧1 ...

    IE6、7、8,火狐等浏览器常见兼容性问题整理

    - IE 和 Firefox 对盒模型(Box Model)的理解不同,IE 使用“怪异模式”,Firefox 等遵循 W3C 标准。 处理浏览器兼容性问题的关键在于理解每个浏览器如何解析 CSS,并且知道如何编写特定的代码片段来克服这些差异...

    CSS浏览器兼容性常见问题总结大全(推荐)

    在网页开发过程中,CSS浏览器兼容性是不可忽视的重要问题,尤其是在IE各版本之间。这篇文章主要聚焦于CSS在不同浏览器中的表现差异,特别是针对IE6、IE7和Firefox等浏览器的兼容性挑战。以下是一些关键知识点: 1. ...

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

    Firefox和其他基于Webkit的浏览器(如Chrome)遵循W3C标准盒模型,其内容区域不包括边距和填充,而IE6-8则使用非标准的盒模型,内容区域包括边距和填充。解决方法是使用`box-sizing`属性,或在CSS中分别设定`width`...

    前端不同浏览器兼容性解决办法

    3. Box Model:IE与其他浏览器对Box Model的处理有差异,IE采用包含边距的模型,而其他浏览器遵循W3C标准。可以通过设置`box-sizing`属性统一盒模型,例如:`box-sizing: border-box;`。 4. IE滤镜(Filters):...

    CSS完美兼容通用方法

    CSS Hack是一种技术手段,用于解决不同浏览器对CSS解析差异导致的兼容性问题。通过特定的语法编写CSS样式,可以实现针对不同浏览器显示相同或相似的效果。 ##### **1.1 CSS Hack的概念** - **目的**:确保网页在...

Global site tag (gtag.js) - Google Analytics