在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了。

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的更多相关文章

  1. css中判断IE版本的语句

    css中判断IE版本的语句<!--[if gte IE 6]> Only IE 6/+ <![endif]-->: 1. <!--[if !IE]> 除IE外都可识 ...

  2. IE浏览器中判断IE版本

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--><!--[if IE]> 所有的IE可识别 <![e ...

  3. js中判断浏览器版本

    var ai = { ovb: { /** * 该对象用于判断系统,系统版本,浏览器,苹果设备等等功能.ovb是单词 Os Version Browser 的头字母缩写. */ _version_va ...

  4. python代码中判断版本

    在python代码中判断python版本: if sys.version_info < (3, 0): lib.make_flows.argtypes = [c_char_p, c_char_p ...

  5. css中hack是什么

    css中hack是什么 一.总结 1.CSS hack:由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览 ...

  6. 区分html与css中的属性

    CSS中id与Class的区别 1.在CSS文件里书写时,ID加前缀"#":CLASS用"." 2.id一个页面只可以使用一次:class可以多次引用. 3.I ...

  7. CSS中"!important"的使用

    本篇文章使用最新的IE10以及firefox与chrome测试(截止2013年5月27日22:23:22) CSS的原理: 我们知道,CSS写在不同的地方有不同的优先级, .css文件中的定义 < ...

  8. CSS中!important的优先级

    本篇文章使用最新的IE10以及firefox与chrome测试(截止2013年5月27日22:23:22) CSS的原理: 我们知道,CSS写在不同的地方有不同的优先级, .css文件中的定义 < ...

  9. CSS中!important的使用 转

    本篇文章使用最新的IE10以及firefox与chrome测试(截止2013年5月27日22::) CSS的原理: 我们知道,CSS写在不同的地方有不同的优先级, .css文件中的定义 < 元素 ...

随机推荐

  1. Windows任务计划 & Linux crontab定时自动任务

    如何在windows服务器上面创建定时任务https://blog.csdn.net/shiyong1949/article/details/52779359 Windows 10系统下如何设置计划任 ...

  2. Struts2(接受表单参数)请求数据自动封装和数据类型转换

    Struts2请求数据自动封装: (1)实现原理:参数拦截器 (2)方式1:jsp表单数据填充到action中的属性:        普通的成员变量,必须给set,get可以不给的.    注意点,A ...

  3. 【Restful】三分钟彻底了解Restful最佳实践

    REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等 ...

  4. c++ primer 笔记 (一)

    昨天开始看的<C++ Primer>,确实不错.希望这周抓紧看完,每天做下笔记,以便以后复习. main函数返回一个值给操作系统   操作系统通过main函数返回的值来确定程序是否成功执行 ...

  5. asp.net core 微信获取用户openid

    获取openid流程为首先根据微信开发参数构造AuthorizeUrl认证链接,用户跳转到该链接进行授权,授权完成将跳转到回调页(首次认证需要授权,后面将直接再跳转至回调页),此时回调页中带上一个GE ...

  6. python:a += b 和 a = a + b

    在python中,不同的情况下,这两个表达式有着很大的区别: 如果a,b都是可变对象,例如list,a+=b实际是对a指向的地址上的值进行修改,即运算前后id(a)的值是不变的. 而a=a+b是不同的 ...

  7. Python字符串相加以及字符串格式化

    1.在Python中字符串a占用一块内存地址,字符串b也占用一块内存地址,当字符串a+b时,又会在内存空间中开辟一块新的地址用来存放a+b. a 地址一 b 地址二 a+b 地址三 因此内存中就占了三 ...

  8. 安装elasticsearch-7.0.0及插件

    下载安装包:(下载地址:https://www.elastic.co/cn/downloads/elasticsearch)elasticsearch-7.0.0-linux-x86_64.tar.g ...

  9. 097实战 关于ETL的几种运行方式

    一:代码部分 1.新建maven项目 2.添加需要的java代码 3.书写mapper类 4.书写runner类 二:运行方式 1.本地运行 2.集群运行 3.本地提交集群运行 三:本地运行方式 1. ...

  10. Ubuntu+Fedora进阶学习,指令迅速查询,Bug迅速查询(Ctrl+F)

    There is some notes while I am learning Ubuntu Operate System! (Ask Ubuntu & Fedora) 1-- Hard li ...