主题:浏览器的兼容性
时间: 2020-08-27来源:ITEYE
前景提要
相关推荐: Javascript在IE和FireFox中的不同表现 Pro CSS Techniques 读书笔记(六) Javascript与CSS在IE和Firefox中的误区及区别 CSS浏览器兼容性的4个解决方案:浏览器CSS样式初始化、浏览器私有属性,CSS hack语法和自动化插件... css兼容性小结 web前端面试题之 CSS浏览器兼容性? CSS浏览器兼容性写法小结 4种方案解决CSS浏览器兼容性问题
推荐群组: CSS探讨
更多相关推荐
CSS 首先,关于CSS hack的方法网上有很多介绍,种类繁多,初学者常常感到很困惑。这类的CSS hack的方法,有的是针对某一个非常特殊的情况的方法,有的则是相对于比较通用的一些方法。对于后者我们在平常的学习工作中,可以多留心收集一些,前者则不需要太关注,只是遇到的时候到网上搜索一下,寻找解决方法即可。 这里举一个比较通用的hack方法,比如对于CSS中的某一个属性,我们希望针对不同的浏览器,设置不同的值。例如,某一个div,我们希望在Firefox中宽度为50像素,在IE中宽度为60像素。那么怎么实现呢?请看如下代码: #demo div{ width:50px; /* FireFox 有效 */ +width:60px; /* IE 有效 */ } 在上面的代码中, 第2行的width:50px这是普通的样式,下一行中,在width属性前面加一个加号,这条样式在Firefox中被认为无效,但是在IE中这个加号会被忽略掉,因此仍然被理解为width属性,从而覆盖上一条的设置,这样就可以区分Firefox浏览器和IE浏览器了。 那么如果希望进一步区分IE 6和IE 7呢?请看如下代码: #demo div{ width:50px; /* FireFox 有效 */ +width:60px; /* IE 7 有效 */ _width:70px; /* IE 6 有效 */ } 上面代码就可以实现对三种浏览器的区分了。在IE7中,属性前加一个加号,这个加号会被忽略,而如果在属性前加一个下划线这整条样式会被忽略,从而实现了对这三种主流浏览器的区分。 到这里,我们自然会想到,什么情况下会用的这种方法来区分浏览器呢?我们要制作的页面,通常会有两种情况,一种是彻底从头开始做,另一种是基于一个已经存在的网页进行修改或者修补。 对于第一种情况来说,我们对网页的每一个细节都十分清楚,因此并不经常遇到非常Firefox和IE的兼容性问题,即使遇到了,一般也可以找到其他方法解决。而对于第二种情况来说,则复杂的多了,因为一个网页可能非常复杂,层叠关系也很复杂,对于后接手的人,很难搞清楚某一个的属性上面有多少层设置会对他产生影响,因此往往只能采用“贴膏药”的方式进行修补。 比如说,如下的一个页面的最终效果,在制作圆角框的时候,在IE中,圆角对整齐之后,在firefox中却出现如图所示的错位,而如果按照Firefox调整好,在IE中又会出现错位。 而页面的内容层层嵌套,在并不知道细节的情况下,很难找到问题的根源。因此这里使用修补的方法就很方便(尽管不是最优雅完善的方法),例如对于控制圆角图像位置的属性使用上面的方法,分别控制即可。 总上所述,对任何属性都可以使用加号或者下划线方法,来实现针对不同浏览器的各自设置。当然,最后还是要指出,任何hack方法都要慎重使用,最好还是能够按照标准、优雅的CSS来进行设计,这样的代码可读性、维护性都要好很多,也是我们追求的目标。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行