360的是用IE的内核,如果你的机子IE是什么版本,360也是一样。所以,360可以不用测试!


1.在同一个文件里针对不同的浏览器写她们各自调用的样式

针对属性:比如容器的height属性

IE6 专用  _height: 100px;

IE7 专用  *+height: 100px;

IE6、IE7  共用 *height: 100px;

IE7、FF  共用 height: 100px !important;

IE8、FF不认识* ,在CSS里加上*height:20px,IE8和FF就没有20px的高度;
 
针对样式: 比如ID 名为example 的样式
#example { height:100px; } /* FF */
* html #example { height:200px; } /* IE6 */
*+html #example { height:300px; } /* IE7 */

 

2.IE6:设置为float的div在ie下设置的margin会加倍

在这个div里面加上display:inline此问题就解决了

 

3.文字下沉

在容器里加上:display:block;overflow:hidden;

 

4. IE与宽度和高度的问题 

IE 不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里这两 个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。   
比如要设置背景图片,这个宽度是比较重要的。要解决这个问题,可以这样:   
#box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}

 

min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把width当 做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类, 然后CSS这样设计:   
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}   
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。  

 

5.float的div闭合;清除浮动;自适应高度

① 例如:<#div id=”floatA” ><#div id=”floatB” ><#div id=” NOTfloatC” >这里的NOTfloatC并不希望继续平移,而是希望往下排。(其中floatA、floatB的属性已经设置为 float:left;)  
这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签 闭合。在 <#div class=”floatB”> <#div class=”NOTfloatC”>之间加上 < #div class=”clear”>这个div一定要注意位置,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会 产生异常。 并且将clear这种样式定义为为如下即可: .clear{ clear:both;}   

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

③对于排版,我们用得最多的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%”>  
<div id=”left”></div>  
<div id=”center”></div>  
<div id=”right”></div>  
</div>  
</div>  
再嵌入一个float left而宽度是100%的DIV解决之  

④万能float 闭合(非常重要!)   
关 于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup],将以下 代码加入Global CSS 中,给需要闭合的div加上 class="clearfix" 即可,屡试不爽.   
/* Clear Fix */   
.clearfix:after { content:"."; display:block; height:0; clear:both; visibility:hidden; }   
.clearfix { display:inline-block; }   
/* Hide from IE Mac */   
.clearfix {display:block;}   
/* End hide from IE Mac */   
/* end of clearfix */   
或者这样设置:.hackbox{ display:table; //将对象作为块元素级的表格显示} 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐