当前位置: 首页 > Web前端 > HTML

条件注释有两种形式——隐藏下层和显示下层

时间:2023-04-02 15:29:49 HTML

条件注释(conditionalcomment)是MicrosoftInternetExplorer条件解释的HTML源代码中的语句。条件注释可用于向InternetExplorer提供和隐藏代码。条件注释首先出现在Microsoft的InternetExplorer5浏览器中,并从InternetExplorer9开始受支持。Microsoft已宣布在InternetExplorer10中终止支持基于标准的页面处理(例如HTML5),但旧版本的网页使用此技术(在兼容性视图中)将继续有效。在处理兼容性问题时,条件注释是一种很常用的手段上面的例子是Bootstrap官方的兼容性写法,ifltIE9表示如果小于IE9,也就是说当浏览器版本为小于IE9,执行下面的语句,当然小于就是不包括IE9,小于等于就是lte(小于等于),大于(gt)大于等于(gte)同理可以得到,普通条件注释的写法可以很清楚,所以本次记录的重点不在这里,而是IE以外的浏览器如何使用条件注释。最初我是这样写的:理所当然!IE可以被其他浏览器识别以达到加载不同版本jQuery的目的,但实际上只有IE5-IE9才支持条件注释。这是IE独有的用法,所以在兼容性处理上存在问题。看上面的例子。如果去掉2.1.4版本的条件注释,在large某些情况下可以正常使用,但是在IE9以下的环境下,会加载两个版本的jQuery,可能会报错,因为一些更高版本的写法不支持jQuery版本,那么有更好的解决方案吗?还是有的,答案就在于条件注释的不同写法。这两种写法分别称为lowerlayerhiding和lowerlayerdisplay。downlevel-hidden(下层隐藏)就是我们上面使用的那种写法,简单易懂,也很常用,但是非IE浏览器会把它当成普通的注释,完全忽略里面的内容。下层显示(downlevel-revealed)我想写到对其他浏览器生效条件注解需要写在下方显示。先看一个非标准的底层显示写法这个例子说明应该只为非IE浏览器公开的内容显示,因为条件对IE为假(因此内容被忽略),并且标签本身在非IE浏览器中不被识别(因此被忽略)。这不是有效的HTML或XHTML。Microsoft承认此语法不是标准化标记,其目的是让其他浏览器忽略该标记并公开其内容。那么想要符合W3C标准怎么写呢?答案如下:什么是这些写作方法?乍一看没有什么区别,但是你可以通过查看语法着色来发现区别。下层显示状态下条件注释中的语句是彩色的,表示已经识别,下层隐藏。原因是下面显示的写法其实是把条件注释的语句注释掉了。前面我们提到,IE以外的浏览器会将条件注释中的所有内容当成普通注释来忽略。那么当我们注释掉条件注释时,IE以外的浏览器都可以识别中间的语句,所以比较合理的兼容性写法可以这样:使用IE5-IE9时,正常识别条件注释,跳过!IE部分,阅读ltIE9中的内容,使用其他版本时忽略条件注释,以及阅读2.1.4版本的jQuery