这几天主要把去年遇到的问题再梳理一遍,一方面做个加深理解,另一方面也希望给遇到这类问题的童鞋一个前车之鉴。

先来说项目中遇到兼容问题,当时从各种方法里找到了两种可行的,选了其中的一种解决了问题,但两种方法里都涉及 <!--[if .....]>.....<!--[endif]-->语句,现在回头想来,其实虽解决了问题,但这种写法却有待了解,于是又深入查了下相关的资料,现将所得记下。

这种写法专为ie浏览器服务的,只有微软的浏览器看到这行代码才会运行里面的代码,其他浏览器就当它是注释略过去了,测试总结 如下:

<!--[if !IE]><!--> 除IE外都可识别 (实际是ie10及以上可也识别)<!--<![endif]-->
<!--[if IE]> 所有的IE可识别 (ie9及以下的才可识别)<![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以及IE7以下版本可识别(实际中ie7没识别) <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->

注意:IE与后面的版本号之间要有空格,不然的话,就算进入兼容内容也是没效果的。

其实直接从它的语句里就能知道作用:

!IE    除IE以外的浏览器

lt       less than        小于运算符

lte       less than or equal       小于或等于运算符

gt      greater than       大于运算符

gte            greater than or equal      大于或等于运算符

算是个小知识点总结吧,注重细节不是坏事,有时候知道解决办法而没解决的原因就是忽略了诸多细节,后续有想法的话,还可以继续补充。

两种解决方法具体如下:

方法一:使用Google的html5shiv包(推荐)

<!--[if lt IE9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

由于这两种方法都需要初始化新标签,所以初始化写在了方法二里

方法二:

<!--[if lt IE 9]>
<script> (function() {if (! /*@cc_on!@*/0) return;var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');var i= e.length;while (i--){document.createElement(e[i])}
})()
</script>
<![endif]-->

然后,再初始化新标签的CSS,因为HTML5在默认情况下表现为内联元素,对这些元素进行布局我们需要利用CSS手工把它们转为块状元素方便布局:

/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}

转载于:https://www.cnblogs.com/fengxiaoqing/p/6409318.html

细嚼浏览器兼容----条件注释判断浏览器版本相关推荐

  1. 条件注释判断浏览器!--[if !IE]!--[if IE]!--[if lt IE 6]!--[if gte IE 6]

    条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]> <!- ...

  2. 条件注释判断浏览器版本!--[if lt IE 9]

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

  3. 条件注释判断浏览器版本!--[if lt IE 9](转载)

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

  4. 浏览器兼容--条件样式,选择符前缀,样式属性前缀

    浏览器兼容--条件样式,选择符前缀,样式属性前缀 2012-12-05 09:20 by greenal, 1570 阅读, 0 评论, 收藏, 编辑 原文地址-- http://www.w3cplu ...

  5. 浏览器兼容--条件样式,选择符前缀,样式属性前缀(转)

    浏览器兼容--条件样式,选择符前缀,样式属性前缀 2012-12-05 09:20 by greenal, 1570 阅读, 0 评论, 收藏, 编辑 原文地址-- http://www.w3cplu ...

  6. 使用条件注释完成浏览器兼容

    最近做的纯PC站需要兼容到IE8,一般使用css hack就能够完成,但如果兼容到IE7及以下就很头疼了,使用条件注释动态加载脚本是个不错的选择. 注释不同的浏览器版本 : (1).支持所有的IE浏览 ...

  7. 解决echarts在360浏览器兼容模式和ie浏览器不兼容问题

    问题一:js 脚本在360浏览器兼容模式会被阻止,需要手动允许程序才能运行. 问题二:js 脚本在ie浏览器会弹出               "echarts lnternet Explo ...

  8. php判断浏览器内核,jquery如何判断浏览器的内核

    jquery判断浏览器内核的方法:使用条件语句判断,代码为[$(function(){if($.browser.msie) {alert("IE浏览器");}else if($.b ...

  9. 360浏览器兼容模式下IE内核版本

    问题 最近在跟客户演示系统时,自己电脑IE 11下好好的,我们web系统最低支持到IE9.在客户电脑上,IE9浏览器下可以正常浏览,但是360兼容模式下,页面什么也不显示. 通过F12调试工具发现,3 ...

  10. 浏览器兼容_查成绩浏览器不兼容怎么办?

    2020教资交流群 (扫码进群) 加群及时了解考试动态.免费备考资料 今晚19:00,面试报名指导及复习计划? 问题:教师资格证查询不是IE6-IE10系列浏览器,怎么办? 答:由于系统兼容性不足,所 ...

最新文章

  1. 干货 | 吴恩达亲自为这份深度学习专项课程精炼图笔记点了赞!(附下载)
  2. catia 工厂设计_SolidWorks、creo、UG哪个更适合机械设计?
  3. C语言的词法分析在长度规则方面采用的是什么策略?
  4. python里面返回上一步_Python中的这3个骚操作你会吗?
  5. java中将string类型转int类型或者将string类型转long类型方法(亲测)
  6. SAP CRM页面assignment block动态显示与否的控制逻辑
  7. [转载] c++list遍历_List、Set、数据结构、Collections
  8. Linux-lamp
  9. window8.1中用户的管理员权限的提升方法
  10. fedora13上安装mhvtl报错
  11. 用python玩转数据mooc答案_中国大学慕课mooc用Python玩转数据章节测试答案
  12. 赛尔号星球大战服务器维修,《赛尔号星球大战》6月14日停服更新公告
  13. y=asin(wx+φ)的对称中心_y=asin(wx+φ)怎么求
  14. 从零开始学习idea开发vue
  15. 庄子·内篇·逍遥游第一(郭象注)
  16. ARCGIS 与SQL的衔接
  17. imx6ull-qemu 裸机教程1:GPIO,IOMUX,I2C
  18. Kt学习笔记(九)数据类、封闭类
  19. Excel VBA-正则表达式汇总
  20. Zeal离线文档下载,以及报错解决方法

热门文章

  1. 摩托罗拉投资Android社交游戏拓荒商Moblyng
  2. display:none与visibility:hidden的区别 ,还有html5的新属性hidden
  3. JWPlayer快速入门指南(中文)
  4. 响应式图片srcset全新释义sizes属性w描述符
  5. Windows中ElasticSearch的备份和还原
  6. 1. golang 接入Discord做消息推送
  7. 中文字符频率统计python_使用 Python 统计中文字符的数量
  8. python手动抛出异常
  9. linux7dhcpd服务命令,CentOS7系统架设DHCP服务
  10. php设置mysql 编码_PHP和Mysql中转UTF8编码问题汇总