HTML和CSS中判断IE版本并实现相应HTML和CSS
程序员文章站
2023-12-31 13:15:58
...
在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了。
1.HTML代码中
经过本人测试,在HTML代码中,区别各种浏览器的代码如下:
<!--[if IE 6]> 仅支持IE6 <![endif]-->
<!--[if lte IE 6]> 支持IE5和IE6 <![endif]-->
<!--[if lt IE 6]> 支持IE5 <![endif]-->
<!--[if gte IE 6]> 支持IE6-IE9 <![endif]-->
<!--[if gt IE 6]> 支持IE7-IE9 <![endif]-->
<!--[if IE]> 支持IE5-IE9 <![endif]-->
<!--[if !IE]><!--> 支持IE9 ,以及其他浏览器 <!--<![endif]-->
原理:针对不同版本的浏览器,这些代码都会被解释为Html注释而直接无视掉。
2.CSS代码中
CSS代码中,则可以根据各浏览器自己独立的可识别的特殊代码来编写区分浏览器的代码,例如为IE系列浏览器可读[\9],而IE6和IE7可读[*],另外IE6可辨识[ _ ](下划线);由
于CSS读取时是按从上到下来的,同样属性靠后写的生效,因此可以依照顺序写下来,就会让每个浏览器正确的读取到自己看得懂得CSS语法,有效区分各类型或版本:
<style type="text/css">
#element{ width:300px;height:100px;}
#element{
background:blue; /*IE9及以上,Firefox等非IE浏览器背景蓝色,如果删除后续样式,都会显示蓝色背景*/
background:red \9; /*IE8 背景红色*/
*background:black; /*IE7 背景黑色;如果删除此行和下一行样式,IE8以下也会显示红色*/
_background:orange; /*IE5、IE6 背景橘色;如果删除这行样式,IE7以下也会显示黑色背景*/
}
#element {
/* 其他浏览器可读取「!important;」但IE6及以下却不行 */
border:5px solid green !important; /*非IE6 边框绿色*/
border:5px solid yellow; /*IE5、IE6 边框黄色*/
}
</style>
PS:说起Web的界面,最让各位WEB开发者痛苦的就是网页兼容性问题,IE是一个恶梦,因为其自己和自己都不兼容,在MSDN上,有这样的一个网页说明了从IE5一直到IE9的CSS的兼容性问题 ,很多很多的表格,头都看大了。
推荐阅读
-
HTML和CSS中判断IE版本并实现相应HTML和CSS
-
如何使用php脚本给html中引用的js和css路径打上版本号
-
pre在html和css中的实现
-
有大神进来 ,判断手机和电脑访问 延时提示信息框并跳转到相应页面_html/css_WEB-ITnose
-
HTML中css和js链接中的版本号
-
解决html表格中内容超出不强制换行和超出宽度自动隐藏并显示省略号_html/css_WEB-ITnose
-
在IE中显示正常,在火狐和谷歌浏览器中显示太坑爹了...各路高人求求进来指点.._html/css_WEB-ITnose
-
新版本IE下 有没有人遇到过 css 边框 inset 和 outset 效果异常?_html/css_WEB-ITnose
-
求助JS和CSS高手啊,如何实现一个DIV中同时有半透明和完全透明_html/css_WEB-ITnose
-
有大神进来 ,判断手机和电脑访问 延时提示信息框并跳转到相应页面_html/css_WEB-ITnose