css浏览器兼容问题(在IETester及其他浏览器中亲试过)

最近在研究一些关于浏览器兼容性问题的css问题,先归纳总结如下:
(1)在一些现代浏览器(opera,chrome,谷歌,safari)中,如果给块级标签如div设置padding后会导致元素的height和width增加,在IE中则不会增加,但是只在IE6中不增加,IE7以上在IETester中测试都会增加,解决办法:可以使用 !important 多设一个 height 和 width

(2)使元素水平垂直居中:垂直居中:将该元素的line-height设置为元素本身的高度,再通过vertical-align: middle;( 注意内容不要换行),水平居中:将元素的margin设置为auto;但是在IE5下没有效果

(3)想给像a,spa这样的行内元素进行样式设置,需要将它的display设置为block

(4)IE在浮动时候产生的双倍距离:若给一个div设置了float,
并且设置了margin,IE5和IE6会产生双倍的间隔,但是在其它的IE版本下就不会,在一些现代浏览器中也不会。解决办法:给该元素添加一个样式:display:inline即可

(5)第二点是 ie对于css的magin padding 等默认值为0px,但ff却不一样,为了保持外观的统一性,即使padding为0你也要写上,以免ff在浏览中的错位。

(6)firefox不支持hand,但ie支持pointer ,两者都是手形指示。 解决方法:统一使用pointer。

(7)ul标签在FF下面默认有list-style和padding, 最好事先声明, 以避免不必要的麻烦;(常见于导航标签和内容列表)

(8)作为外部wrapper的div不要定死高度, 最好还加上 overflow: hidden;以达到高度自适应;

(9)透明度问题:IE下:filter:alpha(opacity=opacityValue);其中opacityValue的值为0-100的整数,firefox下以及其他浏览器:opacity=opacityValue;其中opacityValue的值为0-1的小数

(10)有关float属性带来的差异性:
   1:如下情况:  
    .left{width: 300px;height: 300px;float: left;border:1px solid black;}
    .center{width: 400px;height: 400px;float: left;border:1px solid black;}
    .right{width: 200px;height: 200px;border:1px solid black;clear: both;}
   <div class="left">one</div>
   <div class="center">twod</div>
   <div class="right">three</div>
  (简写)在IE7及以上还有一些现代浏览器中会发生布局错位,而在IE5和IE6中会发生类名为right的块在前面两块右侧正常显示,一般会给right加一个css样式进行限制:clear:both

2:作为外部 wrapper 的 div 不要定死高度,为了让高度能自动适应,要在wrapper里面加上overflow:hidden; 当包含float的 box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性.用zoom:1;可以做到,这样就达到了兼容。 例如某一个wrapper如下定义: .colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}

(11)当内部元素面积大于外部元素面积时:如下例:
   .page{width: 920px;height: 300px;background: purple;margin: 0 auto;}
   .center{width: 400px;height: 400px;border:1px solid black;}
  <div class="page">
   <div class="center">twod</div>
  </div>
  虽然外部元素定义了宽度,在IE5和IE6中,page的背景颜色会随着内部元素的高度变,但是在IE7及以上,page的背景颜色渲染的还是page本身定义的面积,不会随着内部元素比自身大而改变

(12)高度不适应问题:
    .page{width: 920px;auto;background: purple;margin: 0 auto;}
    p{margin-top: 20px;margin-bottom: 20px; text-align:center;}
    <div class="page">
     <p>aaaasddddddddddddddddddddddddddddddddddddddddd</p>
    </div>
    在IE5、IE6、IE7中都会有正常的高度自适应,但是在IE的其他版本中以及所有现代浏览器中,page的背景渲染只会容纳p元素本身的高度
   解决办法:在p标签前后定义两个空的div,并且样式设置为如下:
   
    .page{width: 920px;auto;background: purple;margin: 0 auto;}
    p{margin-top: 20px;margin-bottom: 20px; text-align:center;}
    .empty{height:0px;overflow:hidden;}
       <div class="page">
       <div class="empty"></div>
       <p>aaaasddddddddddddddddddddddddddddddddddddddddd</p>
       <div class="empty"></div>
       </div>
      这种方法在IE5中会再次增加高度,在safari中没有效果,但是在其他现代浏览器以及IE的其他版本中都是可以正常显示的

(13)在无序列表中,如何设置使超出li元素的部分以省略号显示:isplay:block;white-space:nowrap; overflow:hidden; text-overflow:ellipsis;若该li元素在table中,则需要再增加一个样式:table{table-layout: fixed;}才会正常显示。这个显示除了在IE5中不能正常显示外,在其他浏览器中都可以正常显示

(14)IE6下图片下方会有空隙.解决办法:为img加上display:block或设置vertical-align 属性为vertical-align:top | bottom |middle |text-bottom

(15)文字和表单对齐方法:

时间: 2024-10-08 20:01:02

css浏览器兼容问题(在IETester及其他浏览器中亲试过)的相关文章

常见浏览器兼容问题及解决技巧

首先我们应该了解一下为什么会有兼容问题? 由于市场上浏览器种类众多,而不同浏览器其内核亦不尽相同,所以各个浏览器对网页的解析就有一定出入,这也是导致浏览器兼容问题出现的主要原因,我们的网页需要在主流浏览器上正常运行,就需要做好浏览器兼容. 使用Trident内核的浏览器:IE.Maxthon.TT: 使用Gecko内核的浏览器:Netcape6及以上版本.FireFox: 使用Presto内核的浏览器:Opera7及以上版本: 使用Webkit内核的浏览器:Safari.Chrome. 而我现在

浏览器兼容问题的解决方案

对于前端开发良好的浏览器兼容必不可少,总结一下遇到浏览器兼容问题的解决办法. 1.保证浏览器默认css样式一致: 2.书写规范的css,然后在不同的浏览器下测试,针对不同的bug,用适当的方式解决.如:css Hack, 3.使用好的前端架构,通过第三方控件兼容浏览器: 4.多学习.多积累.多google.  一.保证浏览器默认css样式一致 首先要保证各个浏览器的默认样式的统一,所以这里就用到了css.reset.网络上有各种版本的reset代码,一般都是在一个项目的base.css里.我在这

常见的浏览器兼容问题和解决方法

为什么会有兼容问题? 由于市场上浏览器种类众多,而不同浏览器其内核亦不尽相同,所以各个浏览器对网页的解析就有一定出入,这也是导致浏览器兼容问题出现的主要原因,我们的网页需要在主流浏览器上正常运行,就需要做好浏览器兼容. 使用Trident内核的浏览器:IE.Maxthon.TT: 使用Gecko内核的浏览器:Netcape6及以上版本.FireFox: 使用Presto内核的浏览器:Opera7及以上版本: 使用Webkit内核的浏览器:Safari.Chrome. 而我现在所说的兼容性问题,主

【引用】CSS浏览器兼容手册

CSS技巧 1.div的垂直居中问题vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不要换行 2. margin加倍的问题    设置为float的div在ie下设置的margin会加倍.这是一个ie6都存在的bug.解决方案是在这个div里面加上display:inline;   例如:    <#div id=”imfloat”>    相应的css为   #IamFloat{ 

css样式兼容不同浏览器问题解决办法

在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网站,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 通用 height: 100px; IE6 专用 _height: 100px; IE6 专用 *height: 100px; IE7 专用 *+height: 100px; IE7.FF 共用 height: 100px !important; 一.CSS HACK 1, !important

浅谈CSS hack(浏览器兼容)

今天简单写一点关于浏览器兼容的处理方法,虽然百度上已经有很多,但是我还是要写! 先看一个图 这个图描述了2016年1月至8月网民们所使用的浏览器市场份额(来源:http://tongji.baidu.com/data/browser).令我感到欣慰的是chrome排第一,chrome一直以来对W3C标准都支持得比较友好,但是图中也反映了使用IE系列的人数也不少,所以我们日常做前端开发的时候还要考虑他们的感受. 以下是正文: 我的前任公司做前端的时候,要求兼容IE8及以上,谷歌,火狐三座大山.因为

常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解

什么是浏览器兼容问题?所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果.所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题. 总结一下我编写代码的时候遇到的浏览器兼容问题,跟大家学习. 一.解决无法在IE6下面设置1px高的容器(div)的问题. 大家看看这一段代码: <div style="height:1px;wi

CSS浏览器兼容问题

CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名. CSS技巧 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不

CSS实现背景透明,文字不透明(各浏览器兼容)

来自:http://www.cnblogs.com/radom/archive/2010/06/06/1752660.html /*CSS*/.waps{ background:url(07158.bmp) no-repeat top center fixed; width:1004px; text-align:center; line-height:28px; font-size:12px; font-family:Arial, Helvetica, sans-serif;}.con{ tex