• 技术文章 >web前端 >css教程

    解决浏览器兼容性的小技巧

    青灯夜游青灯夜游2018-09-10 14:53:52原创1001
    当我们在进行前端网页开发,编写页面的css样式的时候,往往是需要考虑的不同浏览器的兼容问题的,让我们设计开发的前端页面可以在不同的浏览器上都可以正常展示。本章我们就给大家带来一些解决浏览器兼容性的小技巧,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    一、chrome下会让小于12px的文本字体默认为12px显示,让chrome支持小于12px的字体

    box{ font-size: 8px; -webkit-text-size-adjust: none;}

    但是,上面这个方法 chrome27 以后就不能用了。但我们可以用 css3 解决这个问题

    box{ font-size: 12px; -webkit-transform: scale(0.75);}

    二、不同浏览器的标签默认的外补丁和内补丁不同,随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大,碰到频率:100%

    解决方案:

    * {margin:0;padding:0;}

    备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的css文件开头都会用通配符来设置各个标签的内外补丁是0。

    三、设置较小高度标签(一般小于10px),在ie6,ie7,遨游中高度超出自己设置高度

    问题症状:ie6、7和遨游里这个标签的高度不受控制,超出自己设置的高度

    碰到频率:60%

    解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。

    备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是ie8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。

    四、图片默认有间距

    问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加上问题一中提到的通配符也不起作用。

    碰到几率:20%

    解决方案:使用float属性为img布局

    备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道

    五、标签最低高度设置min-height不兼容

    问题症状:因为min-height本身就是一个不兼容的css属性,所以设置min-height时不能很好的被各个浏览器兼容

    碰到几率:5%

    解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:

    {min-height:200px; height:auto !important; height:200px; overflow:visible;}

    备注:在B/S系统前端开时,有很多情况下我们有这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。

    六、const问题

    说明:Firefox下,可以使用const关键字或var关键字来定义常量;

    IE下,只能使用var关键字来定义常量.

    解决方法:统一使用var关键字来定义常量.

    七. window.location.href问题

    说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;

    Firefox1.5.x下,只能使用window.location.

    解决方法:使用window.location来代替window.location.href.

    八、 ul和ol列表缩进问题

    消除ul、ol等列表的缩进时,样式应写成:

    list-style:none;margin:0px;padding:0px;

    经验证,在IE中,设置margin:0px可以去除列表的上下左右缩进、空白以及列表编号或圆点,设置padding对样式没有影响;在 Firefox 中,设置margin:0px仅仅可以去除上下的空白,设置padding:0px后仅仅可以去掉左右缩进,还必须设置list- style:none才能去除列表编号或圆点。也就是说,在IE中仅仅设置margin:0px即可达到最终效果,而在Firefox中必须同时设置margin:0px、 padding:0px以及list-style:none三项才能达到最终效果。

    九、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;}

    十、页面的最小宽度

    如上一个问题,IE不识别min,要实现最小宽度,可用下面的方法:

    container{ min-width: 600px;width:expression(document.body.clientWidth< 600? "600px": "auto" );}

    第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

    以上就是解决浏览器兼容性的小技巧的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:浏览器兼容性 css
    上一篇:如何使用纯CSS实现条纹错觉的动画效果(附源码) 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• JavaScript 浏览器兼容性总结及常用浏览器兼容性分析_javascript技巧• 浏览器兼容性问题大汇总_javascript技巧• css与javascript跨浏览器兼容性总结_javascript技巧• Dom与浏览器兼容性说明_DOM
    1/1

    PHP中文网