常见的浏览器兼容问题
来源于:
http://developer.51cto.com/art/201008/218335.htm
浏览器兼容问题一:不同浏览器的标签默认的外边距和内边距不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大(2倍边距的问题)
问题症状:常见症状是IE6中后面的一块被顶到下一行
碰到频率:90%(稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题)
解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性
备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。
浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度
问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度
碰到频率:60%
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。
备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。
浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug
问题症状:IE6里的间距比超过设置的间距
碰到几率:20%
解决方案:在display:block;后面加入display:inline;display:table;
备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。
浏览器兼容问题五:图片默认有间距
问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。
碰到几率:20%
解决方案:使用float属性为img布局
备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)
浏览器兼容问题六:标签最低高度设置min-height不兼容
问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容
碰到几率:5%
解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important; height:200px; overflow:visible;}
备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。
浏览器兼容问题七:透明度的兼容CSS设置
做兼容页面的方法是:每写一小段代码(布局中的一行或者一块)我们都要在不同的浏览器中看是否兼容,当然熟练到一定的程度就没这么麻烦了。建议经常会碰到兼容性问题的新手使用。很多兼容性问题都是因为浏览器对标签的默认属性解析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为什么会出现兼容问题以及怎么去解决这些兼容问题。
浏览器兼容问题八: DIV浮动 IE文本产生3象素的bug
左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.
#box{ float:left; width:800px;}
#left{ float:left; width:50%;}
#right{ width:50%;}
*html #left{ margin-right:-3px; //这句是关键}
<div id="box">
<div id="left"></div>
<div id="right"></div>
</div>
问题九:对齐文本与文本输入框
加上vertical-align:middle
- /* CSS hack*/
我很少使用hacker的,可能是个人习惯吧,我不喜欢写的代码IE不兼容,然后用hack来解决。不过hacker还是非常好用的。使用hacker我可以把浏览器分为3类:IE6 ;IE7和遨游;其他(IE8 chrome ff safari opera等)
◆IE6认识的hacker 是下划线_ 和星号 *
◆IE7 遨游认识的hacker是星号 *
比如这样一个CSS设置:
height:300px;*height:200px;_height:100px;
IE6浏览器在读到height:300px的时候会认为高时300px;继续往下读,他也认识*heihgt, 所以当IE6读到*height:200px的时候会覆盖掉前一条的相冲突设置,认为高度是200px。继续往下读,IE6还认识_height,所以他又会覆盖掉200px高的设置,把高度设置为100px;
IE7和遨游也是一样的从高度300px的设置往下读。当它们读到*height200px的时候就停下了,因为它们不认识_height。所以它们会把高度解析为200px,剩下的浏览器只认识第一个height:300px;所以他们会把高度解析为300px。因为优先级相同且想冲突的属性设置后一个会覆盖掉前一个,所以书写的次序是很重要的。
来源于:http://www.tonyzhong.com/?p=121
常见的IEbug及修复方法
基本都是IE6的bug,业界毒瘤。
①双外边距浮动bug,IE6
这个bug会使浮动元素的外边距加倍。
解决办法:给浮动元素添加display:inline
②3像素文本偏移bug,IE6
当文本与浮动元素相邻时,会多出3px的间隙。
解决办法:使用条件注释转移到单独的CSS文件中修复,如前面的ie6.css
正常的css中p{margin-left:0}
.myfloat{margin-right:-3px}
③IE6的重复字符bug
多个浮动元素间有多个注释(2个以上)时,最后一个元素的最后几个字符重复。
解决方法:去掉注释
④IE6的藏猫猫bug
一个浮动元素后有多个非浮动元素,及一个清理元素。清理元素如果与浮动元素接触,则非浮动元素会消失,刷新后才可见。
解决方法:给容器指定行高
⑤相对容器中绝对定位
相对定位的元素没有hasLayout属性,绝对定位的父元素就编程了其他的元素。
解决方法:条件注释给相对元素指定高度
常见的浏览器兼容问题相关推荐
- CSS常见的浏览器兼容汇总
CSS常见的浏览器兼容汇总 一.从浏览器内核的角度 来看,浏览器兼容性问题可分为以下三类: 1.渲染相关:和样式相关的问题,即体现在布局效果上的问题. 2.脚本相关:和脚本相关的问题,包括JavaSc ...
- 常见前端浏览器兼容问题及解决方案
常见前端浏览器兼容问题及解决方案 所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站 ...
- 常见的浏览器兼容问题及解决方案
1 浏览器内核 不同浏览器的内核也不尽相同,所以各个浏览器对网页的解析存在一定的差异. 常见的浏览器内核: 浏览器名称 内核 IE Trident内核,也称IE内核 Chrome(谷歌) 以前是Web ...
- 前端常见的浏览器兼容问题
不同浏览器的内核不尽相同,所以各个浏览器对网页的解析存在一定的差异. 浏览器内核主要分为两种,一是渲染引擎,另一个是js 引擎 所以浏览器兼容性问题一般指:css兼容.js兼容 一.样式初始化 由于各 ...
- 常见的浏览器兼容问题: html 方面
之前有整理过一部分知识点, 一直没有发布, 因为都是有关 CSS 方面的零散内容; 现在想想无论分享什么内容都需要慢慢积累, 所以还是决定将之前整理的相关内容验证之后慢慢分享给大家, 不仅仅是 CSS ...
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
为什么会有兼容问题? 由于浏览器种类众多,不同的浏览器其内核亦不尽相同,故各个浏览器对网页的解析有一定出入,这也是导致浏览器兼容问题出现的主要原因,我们的网页需要在主流浏览器上正常运行,就需要做好浏览 ...
- 常见的浏览器兼容性问题大汇总
所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的 ...
- 金三银四,那浏览器兼容你知多少?
为什么会存在浏览器兼容问题? 首先要了解兼容,我们先得了解一下为什么会存在浏览器兼容问题.在各大浏览器厂商的发展过程中,它们对web的标准各有不同的实现,标准不同存在差异所以产生兼容性的问题. 浏览器 ...
- 浏览器兼容问题(实战干货)
常见浏览器兼容性问题与解决方案 所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或 ...
最新文章
- 台式计算机系统重新安装软件,有人教我重装电脑程序的吗,谢谢了
- ETSI MEC — 容灾组网模型
- ASP.NET Core 中文文档 第二章 指南(4.5)使用 SQL Server LocalDB
- 诊断案例:从实例挂起到归档失败和内存管理的蝴蝶效应
- 练习7-11 字符串逆序 (15分)
- 虚拟机中dns配置好了但是域名ping不同_弱电工程中常用的几个网络命令,学会后轻松变高手...
- java中push和pop指令的作用_汇编语言PUSH和POP指令(压栈和出栈)
- (38)VHDL实现主从JK触发器
- CUDA内存分配、释放、传输,固定内存
- OpenShift 4 - 安装 OpenShift 集群后如何删除节点或增加新节点
- 6阶群的非平凡子群_抽代杂谈(9): Fratinni子群和幂零群(上)
- qt获取桌面路径(暂定应用Windows)
- python函数的参数细节
- i8一点通无盘解决方案
- 软件测试面试技术方法(一)
- 手机端获取外网IP方法
- 搬家后计算机总重启,电脑无故重启是这一个月来的事了,我刚刚搬家电脑搬到新家那用了没几 爱问知识人...
- git rebase命令实际操作记录
- 初学入门YOLOv5手势识别之制作并训练自己的数据集
- python足球分析系统_NAO足球/高尔夫比赛视觉系统设计(python初级版)
热门文章
- 放话挑战GPT-3!以色列推出参数多30亿、词条多5倍的新语言模型|公测不用排队...
- 三体人有救了,只要等得够久就会有一个太阳被甩出去
- ACL 2019最佳论文出炉:华人团队包揽最佳长短论文一作,中科院、华为等榜上有名...
- 高清还原破损视频,参数和训练时间减少三分之二,台大这项研究登上了BMVC 2019...
- fiddler展示serverIP方法
- PageRank的基本原理以及个性化PageRank在推荐系统的应用
- 要如何努力,才干成为非常厉害的人?!
- POJ 2778 DNA Sequence —— (AC自动机+矩阵快速幂)
- UC,qq浏览器强制横屏
- 谈谈你对摩尔定律的理解,摩尔定律当前还是继续有效的吗?