龙空技术网

前端HTML兼容性问题收集(1)

Linux猿 411

前言:

眼前大家对“html的兼容性”可能比较看重,小伙伴们都想要分析一些“html的兼容性”的相关资讯。那么小编同时在网上收集了一些对于“html的兼容性””的相关文章,希望同学们能喜欢,兄弟们一起来学习一下吧!

1. 使用XHTML格式写代码,并定义好DOCTYPE,因为这个会影响CSS的处理

2. div 的垂直居中问题

vertical-align:middle;将行距增加到和整个DIV一样高(line-height:100px;),然后插入文字,就能垂直居中了。

缺点:需要控制内容不换行

3. margin 加倍问题

设置为float的div在IE下设置的margin会加倍,这是IE6的BUG。

解决:在此DIV上加入:display:inline;

4. 浮动IE产生双倍距离

#box{float:left;width:100px;margin:0 0 0 100px;}

此情况下IE会产生200px的距离 display:inline;-->使浮动忽略

Tips:

block与inline的区别:

block:总是在新行上开始、高度、宽度、行高、边距都可以控制(块元素)

inline:和其它元素在同一行上,不可控制(内嵌元素)

#box{display:block;} --> 可以为内嵌元素模拟为块元素

#box{display:inline;} --> 实现同一行排列的效果

#box{display:table;} -->

5. IE 宽度与高度的问题

IE不认min-*这个定义,但实际上它把正常的width和height当作有min的情况来处理。

如果只用宽度和高度,正常的浏览器这两个值都不会变

如果只用min-width和min-height,则IE下面就没有设置宽度和高度

解决:

#box{width:80px;height:35px;}

改为:

#box{width:auto;height:auto;min-width:80px;min-height:35px;}

6. 页面的最小宽度

min-width指定最小宽度,可以保证排版正确性。但IE不认识,解决如下:

把div放到body下,并给指定如下的样式:

#container{min-width:600px;width:expression(document.body.clientWidth < 600 ? '600px' : 'auto');}

Tips: 第二个width使用了js来判断,不太规范

7. 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>

8. IE 捉迷藏问题

当DIV应用复杂的时候每个栏中又有一些链接,IE会出问题:有些内容显示不出来,但鼠标选择这个区域的时候,内容又是有的

解决:设置line-height或者给固定高度和宽度

9. 无法定义1px左右的高度的容器

解决:overflow:hidden; / zoom:0.08; / line-height:1px;

10. 让层显示在 FLASH 之上

给flash设置透明: <param name='wmode' value='transparent'/>

11. 定位一个层垂直居中于浏览器中

技巧: 百分比绝对定位与外补丁负值。Tips: 负值的大小为自身宽度高度除以2

参考样式:

<style type="text/css">

div {

position: absolute;

top: 50%;

left: 50%;

margin: -100px 0 0 -100px;

width: 200px;

height: 100px;

border: solid 1px #F00;

}

</style>

12. DIV 居中问题

div设置margin-left:auto;margin-right:auto;时已居中,但IE不认,需要在body中居中,即在父级元素中定义text-align:center;

即:在父级元素内的内容居中

13. a标签加边框与背景色

需要设置其为 display:block;且设置float:left;来保证不换行

14. 链接访问过hover样式就不出现了

解决:改变属性的排序-> L -> V -> H -> A

参考样式:

<style type="text/css">

a:link{}

a:visited{}

a:hover{}

a:active{}

</style>

15. cursor

cursor:pointer;兼容IE与FF,但hand仅在IE有用

16. ul的margin与padding

ul在FF中默认有padding值,而在IE中只有margin有值,所以需要预先就定义ul{margin:0;padding:0;}

17. form标签

在IE中,form会有边距,而FF中margin则为0;

解决: form{margin:0;padding:0;}

18. 实在没有解决了,可以使用 !important 配置

标签: #html的兼容性