1、浏览器兼容的前提是养成好的网页开发习惯:
本人在做了几个月的前端浏览器兼容问题上,经常出现的不兼容是标记写法错误或简略导致的。例如Div的写法,一定要遵循好的习惯。
推荐写法:
<div></div>
不推荐的写法:
<div/>
2、Div中的文字在不同浏览器下换行问题
设置 style="white-space:normal;word- break : break -all;overflow:hidden; "
3、!important不同浏览器属性宽度不一样.
IE7本身支持!important,针对不同浏览器高度、宽度、内外边距问题可采用如下方法解决
.button-gap{
margin-right: 0px!imprtant; /*ie7及firefox支持*/
margin-right: 4px;/*ie6支持*/
}
4、*html和*+html问题
*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.
代码:
<style>
#wrapper { width: 120px; } /* FireFox */
*html #wrapper { width: 80px;} /* ie6 fixed */
*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */
</style>
注意:
*+html 对IE7的兼容 必须保证HTML顶部有如下声明:
代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5、height属性问题
第一个兼容,IE FF 所有浏览器 公用(其实也不算是兼容)
height:100px;
第二个兼容 IE6专用
_height:100px;
第三个兼容 IE6 IE7公用
*height:100px;
height:100px;
*height:120px;
_height:150px;
在FF下,第2、3个属性FF不认识,所以它读的是 height:100px;
在IE7下,第三个属性IE7不认识,所以它读第1、2个属性,又因为第二个属性覆盖了第一个属性,所以IE7最终读出的是第2个属性 *height:120px;
在IE6下,三个属性IE6都认识,所以三个属性都可以读取,又因为第三个属性覆盖掉前2个属性,所以IE6最终读取的是第三个属性。
6、Div设置padding问题
IE在解析padding的时候认为padding是在宽度里面缩进,而firefox则认为是在宽度外边缩进,所以下面是两个等价的css设置。
IE下:
.i-div{width:800px;padding-left:12px;padding-right:12px;height:500px}
等同于火狐下的:
Div中不包含其他元素作为站位符使用的时候,如果该DIV只是空的占位符,且高度小于12px时,ie解析错位,因为IE默认认为是12px,解决方法是加入lineheight属性高度等于height,同时font-size:0px;这样在IE下才不会解析错位。
.i-div{ height:6px;width:20px;}
要在ie下兼容,应该为
.i-div{height:6px;line-height:6px;font-size:0px}
.i-div{width:776px;padding-left:12px;padding-right:12px;height:500px}
为了兼容两个浏览器,可采用如下方法:
.i-div{width:776px!important;width:800px;padding-left:12px;padding-right:12px;height:500px}
注意:顺序一定不能变。火狐会取前者,而IE7两者都识别,最终取后者,其他IE识别后者。
7、关于空的DIV站位问题
如果DIV只是空的占位符,且高度小于12px时,ie在解析时,它默认是12px,解决方法是加入lineheight属性高度等于height,同时font-size:0px;这样在ie下才不会解析错位.
.i-div{ height:6px;width:20px;}
要在ie下兼容,应该为
.i-div{height:6px;line-height:6px;font-size:0px}
8、作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应.防止页面内容超过Div高度而是div撑开,同时,注意Div内部Div要自适应高度则需要设置overflow: auto
9、对齐问题
(1)DIV中文字的垂直居中问题
设置vertical-align:middle;同时设置 line-height属性等于DIV的高度(不能换行)
(2)DIV水平居中问题
设置DIV的父容器style为text-align:center,然后将DIV的属性设置如下即可:
margin-left:auto; margin-right:auto;
10、图片的背景的平铺控制
1、只平铺一次
background-repeat:no-repeat;
2、水平平铺一次
background-repeat:repeat-x;
1、垂直平铺一次
background-repeat:repeat-y;
11、段首缩进设置
Text-indent:2em; //em 字体的高度
12、字间距的调整
letter-spacing属性用于设置字体间的距离,负值表示缩小,正值表示增大。
对于英文,通过word-spacing属性可以设置单词间的距离。
13、伪类的顺序:LVHA(link,visited、hover、active)顺序,违反该顺序,浏览器有些效果不支持。
14、文字和图片对齐
1、设置文字的外部属性valign为middle,或设置css样式中的text-align属性为middle(两个是等价的)
2、设置img元素的align属性值为absmiddle即可。
15.float属性带来的一些列问题
(1)、margin加倍的问题
设置为float的div在ie下设置的margin会加倍。解决方案是在这个div里面加上 display:inline;样式如下:
#IamFloat{
float:left;
margin:5px;/*IE下理解为10px*/
display:inline;/*IE下再理解为5px*/
}
(2)、
<#div id=”floatA” >
<#div id=”floatB” >
<#div id=” NOTfloatC” >
已知floatA、floatB设置了float:left属性,要求NOTfloatC不是水平排列,而是向下排列时,需要在<#div id=”floatB” >和<#div id=” NOTfloatC” >添加一个div,设置其class属性为:clear:both;即可。
(3)、作为外部 wrapper 的 div 不要定死高度,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;
当包含float的
box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就达到了兼容。
例如某一个wrapper如下定义: .colwrapper{ overflow:hidden; zoom:1; margin:5px
auto;}
(4)、对于排版,我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一个统一的背景,譬如:
<div id=”page”> <div id=”left”></div> <div
id=”center”></div> <div id=”right”></div>
</div> 比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left
center right的向下拉长,而
page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成float,所以我们应该这样解决
<div id=”page”> <div id=”bg”
style=”float:left;width:100%;background-color: #99CCCC”> <div id=”left”></div>
<div id=”center”></div> <div id=”right”></div>
</div> </div> 再嵌入一个float left而宽度是100%的DIV解决之
分享到:
相关推荐
浏览器兼容常见问题css兼容 css兼容 浏览器兼容 IE6789兼容
CSS属性、浏览器兼容与网页布局CSS属性、浏览器兼容与网页布局CSS属性、浏览器兼容与网页布局CSS属性、浏览器兼容与网页布局CSS属性、浏览器兼容与网页布局CSS属性、浏览器兼容与网页布局CSS属性、浏览器兼容与网页...
CSS在不同浏览器中兼容问题CSS在不同浏览器中兼容问题CSS在不同浏览器中兼容问题CSS在不同浏览器中兼容问题CSS在不同浏览器中兼容问题CSS在不同浏览器中兼容问题
CSS 对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE与Firefox的兼容性处理方法并整理了一下
最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)
css 多浏览器兼容解决方案 下载,web制作必备。
css 兼容 css重设兼容浏览器 css重设兼容浏览器
各浏览器css兼容写法各浏览器css兼容写法
css渐变代码,代码兼容各个浏览器,适用于ie7以上及各主流浏览器
css浏览器兼容问题内部资料 欢迎下载!实例研究!
CSS浏览器兼容问题,解决各个浏览器中css不兼容的问题。
让div+css兼容所有浏览器的一些注意事项
css多浏览器兼容方案和准则 清除浮动 还有解决兼容问题的一系列方法
让css在所有浏览器下兼容 区别IE6与FF: background:orange;*background:blue; 区别IE6与IE7: ...........
主要解释css样式在浏览器中的兼容问题
css 浏览器兼容性速查 CSS必不可少的工具
CSS浏览器兼容性问题.pdf
各种浏览器的兼容性和CSS HACK的写法,让你不再为IE6和各种浏览器的兼容性发愁,非常方便!
别具光芒——CSS属性、浏览器兼容