当前位置: 首页 > Web前端 > CSS

浏览器兼容性(CSS部分)

时间:2023-03-31 13:07:10 CSS

**我说的兼容性问题主要是指IE和firefox、google等几款主流浏览器。而对于IE浏览器来说,IE7是一个跨度,因为之前的版本更新很慢,bug也很多。从IE8开始,IE浏览器逐渐遵循该标准。IE9之后大家一致认为标准很重要,可以说是兼容性更好了。但是在国内,由于xp的份额,使用IE7及以下版本的用户还是很多,所以我们不得不考虑低版本浏览器的兼容性问题。对于浏览器兼容性问题,一般分为HTML、Javascript兼容性、CSS兼容性。其中,html相关的问题相对好处理。无非是高版本浏览器使用了低版本浏览器无法识别的元素,导致无法解析,所以平时注意一下。特别是HTML5中加入了很多新的标签,低版本的浏览器可能不兼容。**标签在不同浏览器中的默认外部补丁和内部补丁不同问题症状:随便写几个标签,没有样式控制,各自的margin和padding差别很大。遇到频率:100%解决方法:*{margin:0;padding:0;}incss备注:这是最常见也是最容易解决的浏览器兼容性问题。几乎所有的css文件都是以通配符*开头,将每个标签的内外补丁都设置为0。block属性标签float后,有一个水平边距,在ie6中显示边距比例有很大问题。会遇到,float布局是最常见的浏览器兼容性问题)解决方法:在float的标签样式控件中添加display:inline;将其转换为内联属性是典型的块属性标签。我们通常使用divfloat来实现水平布局。如果水平间距设置是带边距实现的,这是不可避免会遇到的兼容性问题。设置一个小的高度标签(一般小于10px),在ie6,ie7中,高度超过你设置的高度。症状:这个标签在ie6、7和优优中的高度不受控制,超过了你设置的高度。频率:60%解决方法:对超过高度的标签设置overflow:hidden;或者将行高line-height设置为小于您设置的高度。备注:这种情况一般出现在我们设置小圆角背景的label中。出现这个问题的原因是ie8之前的浏览器会给标签一个默认的最小行高。即使你的标签是空的,这个标签的高度还是会达到默认的行高。内联属性标签,设置display:block后,使用float布局,有水平边距,ie6间距bug(类似第二种)问题症状:ie6中间距比例超过设置间距概率:20%解决办法:添加显示:内联;显示:表格;显示后:块;使用float布局和horizo??ntalmargin后,在ie6下,block属性float后出现horizo??ntalmargin的bug。但是因为是inline属性标签,如果我们加上display:inline,它的高宽是不能设置的。这时候我们还需要在display:inline之后加上display:talbe。图片有默认间距问题症状:当几个img标签放在一起时,有些浏览器会出现默认间距,问题1中提到的通配符不起作用。遇到概率:20%解决方法:img布局使用float属性备注:因为img标签是行内属性标签,所以只要不超过容器的宽度,img标签就会排成一排,但是有些浏览器会它们之间有img标签。有差距。去除这个间距并使用浮动是正确的方法。标签min-height的最小高度设置不兼容症状:由于min-height本身是一个不兼容的css属性,在设置min-height时,不能很好的兼容各种浏览器。遇到几率:5%解决方法:如果我们要设置标签的最小高度为200px,需要做的设置是:{min-height:200px;高度:自动!重要;高度:200px;overflow:visible;}很多时候我们都有这种需求。当内容小于某个值(如300px)时。容器高度为300px;当内容的高度大于这个值时,容器的高度会升高,而不是滚动条。这个时候我们就会面临这个兼容性问题。设置transparencycompatiblecss的方法是:我们每次写一小段代码(布局中的一行或者一个块),我们都要检查它是否兼容不同的浏览器。推荐给经常遇到兼容性问题的新手。很多兼容性问题是由于浏览器对标签默认属性的解析不同造成的。只要我们稍作设置,就可以轻松解决这些兼容性问题。如果我们熟悉标签的默认属性,我们就可以理解为什么会出现兼容性问题以及如何解决这些问题。盒子模型盒子模型有两种类型:IE盒子模型和标准的W3C盒子模型。从图1和图2可以看出,IE盒模型的宽度包括border、padding和content,而W3C盒模型的宽度只限于content。在CSS3属性中,box-sizing可以设置框模型类型,默认值为content-box,content-box表示W3C框模型,border-box表示IE框模型。IE5.5及更早版本使用IE盒子模型。IE6及以上版本在标准兼容模式下使用W3C盒子模型标准。我们说这是个好消息,因为这意味着这个盒子模型问题只出现在IE5.5及更早的版本中。只需为文档设置DOCTYPE即可使IE在标准兼容模式下工作。IE盒子模型W3C盒子模型