多浏览器css兼容分析小结

CSS 兼容要点: 
1、 DOCTYPE 影响CSS 处理 。
2 、FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行。 
3 、FF: body 设置text-align 时, div 需要设置margin: auto(主要是 margin-left,margin-right) 方可居中。 
4 、FF: 设置padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width。 
5 、FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式。 
6 、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行。 
7 、cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以。
8 、FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。

XHTML+CSS兼容性解决方案小集 
       使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找^^

1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:  


代码如下:

div{margin:30px!important;margin:28px;}

注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样: 


代码如下:

div{maring:30px;margin:28px}

重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

2.IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改:
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} 
      关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:)

3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 :


代码如下:

ul{margin:0;padding:0;}

就能解决大部分问题。

4.关于脚本,在xhtml1.1中不支持language属性,只需要把代码改为 
<script type="text/javascript" / > 
就可以了。

(0)

相关推荐

  • 使css兼容IE8的小技巧

    这样就存在了新的问题,目前在IE7中工作正常的网页在IE8中会出现问题. 微软在IE8提供三种解析页面的模式 IE8 Standard Modes :默认的最标准的模式,严格按照W3C相关规定 IE7 Standards Modes :IE7现在用的解析网页的模式,开起机关是在中加入  Quirks Modes :IE5用的解析网页的模式,开起机关是删除HTML顶部的DOCTYPE声明  注意:不同模式间的网页在IE8中可以互相 frame ,因此因不会模式下的DOM和CSS渲染不一样,所以会引

  • CSS兼容要点分析

    IE vs FF CSS 兼容要点: DOCTYPE 影响 CSS 处理 FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 h

  • IE7 beta2的CSS兼容性

    当IE7 beta1推出的时候,我在第一时间对它作了个测试.当时发现它对CSS的支持几乎没有任何变化,着实失望了一阵.MS在最近推出了IE7 beta2,这次有了不少新的改进和变化.但这些改进和变化会导致一些原来正常网页出现布局错误或者原来可以使用的Hack技巧不再可用.MSDN在年初的时候把这些可能产生的问题罗列给开发者(这是原文),这里我把其中比较主要的问题简单地描述一下,希望能对大家有所帮助. 注意,在IE7正版发布之前,以下提到所有内容都是有可能变化的. 盒模型变了!!! 这恐怕是会让那

  • Css浏览器兼容的解决方法

    一.网页背景半透明网页背景半透明 复制代码 代码如下: opacity:0.8;filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=80)";IE6中CSS方法解决PNG图片半透明问题:#DIVname {      width: 300px;      height: 99px;      background: url('images/top.png') no-repeat top;      *background: n

  • 多浏览器css兼容分析小结

    CSS 兼容要点:  1. DOCTYPE 影响CSS 处理 . 2 .FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行.  3 .FF: body 设置text-align 时, div 需要设置margin: auto(主要是 margin-left,margin-right) 方可居中.  4 .FF: 设置padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 

  • 浅析JavaScript中浏览器的兼容问题

    浏览器兼容性问题是在实际开发中容易忽略而又最重要的一部分.我们在讲老版本浏览器兼容问题之前,首先要了解什么是能力检测,它是来检测浏览器有没有这种能力,即判断当前浏览器是否支持要调用的属性或者方法.下面做了一些简短的介绍. 1.innerText 和 innerContent 1)innerText 和 innerContent 的作用相同 2)innerText IE8之前的浏览器支持 3)innerContent 老版本的Firefox支持 4)新版本的浏览器两种方式都支持 1 // 老版本浏

  • vue-cli3项目在IE浏览器打开兼容问题及解决

    目录 vue-cli3在IE浏览器打开兼容问题 问题描述 方案 vue-cli 在IE下兼容设置 解决办法如下 vue-cli3在IE浏览器打开兼容问题 问题描述 vue打包的项目在ie浏览器上,不能打开.找了一天的解决方案,解决一个又报一个兼容错误,一步一坑一步一填,终于解决了问题

  • css浏览器不兼容原因分析及解决办法第1/2页

    在下不才,归纳几点html编码要素,望能指点各位:1.文字本身的大小不兼容.同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白1px,下留白3px,opera下就更不一样了.解决方案:给文字设定 line-height .确保所有文字都有默认的 line-height 值.这点很重要,在高度上我们不能容忍1px 的差异. 2.ff下容器高度限定,即容器定义了height之后,容器边框的外形就确定了,

  • JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结

    在这篇文章中,作者介绍了7个JavaScript在IE和Firefox中存在的差异. 1. CSS "float" 值 访问一个给定CSS 值的最基本句法是:object.style.property,使用驼峰写法来替换有连接符的值,例如,访问某个ID为"header"的<div>的 background-color值,我们使用如下句法: document.getElementById("header").style.backgrou

  • div+CSS 兼容小摘

    区别IE6与FF: background:orange;*background:blue; 区别IE6与IE7: background:green !important;background:blue; 区别IE7与FF: background:orange; *background:green; 区别FF,IE7,IE6: background:orange;*background:green !important;*background:blue; IE7,IE8兼容: <meta http

  • JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决

    var date = new Date('2016-11-11 11:11:11'); document.write(date); 最近在写一个时间判断脚本,需要将固定好的字符串时间转换为时间戳进行比较,在做的时候个人习惯使用chrome作为调试工具,代码基本完成之后,一切正常: 使用其他浏览器访问,好嘛,IE跟safari都不兼容,返回错误"Invalid Date". 想着估计是字符串格式的问题,改成'2016/11/11 11:11:11'再测试,结果正常,以为这样应该没问题了,

  • 字符集导致的浏览器跨站脚本攻击分析

    |=-------------------------------–=| |=-----–=[ 字符集导致的浏览器跨站脚本攻击 ]=-----–=| |=-------------------------------–=| |=-------------=[ By jianxin ]=------------=| |=-----------=[ jianxin@80sec.com ]=----------=| |=--------------------------------=| 文中<已经被

  • 解析ajax核心XMLHTTPRequest对象的创建与浏览器的兼容问题

    MLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始. 了解XMLHttpRequest 对象就先从创建XMLHttpRequest 对象开始,在不同的浏览器中创建XMLHttpRequest 对象使用不同的方法: 先看看IE创建XMLHttpRequest 对象的方法(方法1): var xmlhttp=ActiveXobject("Msxml12.XMLHTTP");//较新的IE版本创建Msxml12.XMLHT

随机推荐