一:css兼容性问题
1:通常我们写代码在css开始的时候就会写
*{
margin:0;
padding:0;
}
其主要原因就是不同浏览器对标签不加样式控制的情况下,各自的margin 和padding差异较大,这就会造成差异;
解决方案:css 里面加上上述代码 (通配符*来设置各个标签的内外补丁是0)。
2:块元素 设置float后,有margin情况下,本来在一行的东西,最后一个元素被挤到下一行;
主要原因:布局用div+css布局的话,div设置float,横向距离用margin设置的话,IE6显示margin比设置的大,所以就会被挤到下一行;
解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性
3:几个图片排列在一起,图片之间有缝隙,设置通配符间距为0也不好使,
主要原因:mg标签放在一起的时候,有些浏览器会有默认的间距,通配符也不起作用。
解决方案:给img加上float属性;你建议用margin设置为负数解决为题,因为margin本身也有兼容性问题
4:行元素 设置display:block;又设置float属性,会出现上述问题2的问题;
解决方案:在display:block;后面加入display:inline;display:table;
5:透明度的问题
一句话搞定背景透明:
.op_class{
filter:alpha(opacity=50); //IE
-moz-opacity:0.5; //火狐
-khtml-opacity: 0.5; //Safari (1.x)
opacity: 0.5; //Firefox, Safari, and Opera.
}
通常我们会看到有这样的写法: !important;!important这个属性IE不能识别,但别的浏览器可以识别
例如火狐(FF) 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width ;
注意写的先后顺序不能颠倒;
写法:div{margin:30px!important;margin:28px;}
二:js常见的兼容性问题;
1:event = event || window.event;
问题原因:window.event只能在IE下使用,不能在火狐下使用,火狐使用event
例如:在浏览器上获取鼠标的位置:
<button onclick=
"onClick()"
>获得鼠标点击横坐标</button>
<script type=
"text/javascript"
>
function
onclick(){
alert(event.clientX);
}
</script>
<button onclick=
"onClick(event)"
>获得OuterHTML</button>
<script type=
"text/javascript"
>
function
onclick(event){
event = event || window.event;
alert(event.clientX);
}
</script>
if
(navigator.appName.indexOf(
"Explorer"
) > -1) {
document.getElementById(
'element'
).innerText =
"my text"
;
}
else
{
document.getElementById(
'element'
).textContent =
"my text"
;
}
var
xmlhttp;
if
(window.XMLHttpRequest) {
xmlhttp =
new
XMLHttpRequest();
} elseif (window.ActiveXObject) {
// IE的获取方式
xmlhttp =
new
ActiveXObject(
"Microsoft.XMLHTTP"
);
}