返回顶部
首页 > 资讯 > 精选 >HTML条件注释的知识点有哪些
  • 198
分享到

HTML条件注释的知识点有哪些

2023-06-27 10:06:30 198人浏览 泡泡鱼
摘要

这篇文章主要介绍了html条件注释的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇HTML条件注释的知识点有哪些文章都会有所收获,下面我们一起来看看吧。最近经常看到类似这样的 HTML 代码片段,很

这篇文章主要介绍了html条件注释的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇HTML条件注释的知识点有哪些文章都会有所收获,下面我们一起来看看吧。

最近经常看到类似这样的 HTML 代码片段,很多前端开发人员应该都熟悉:

1 <!--[if lt IE 7]> <html class="ie6"> <![endif]-->2 <!--[if IE 7]> <html class="ie7"> <![endif]-->3 <!--[if IE 8]> <html class="ie8"> <![endif]-->4 <!--[if gt IE 8]><!--> <html> <!--<![endif]-->

  这段代码包含了一些条件注释,它会根据浏览器的不同选择性地给<html>标记添加(或不添加)一个包含浏览器版本信息的 class属性。具体来说,对于IE5-IE8,<html>标记会增加一个 class 属性,属性值由IE的版本来决定。对于 IE9、较 IE9 更高的IE版本以及非 IE 浏览器,<html>保持原样。这样,我们就可以针对 IE5-IE8 这些老式浏览器来编写只对它们生效的 CSS 代码,比如:

1 .foo { color: red;}2 .ie6 .foo { color: yellow;}3 .ie7 .foo { color: blue;}

进一步地,我们就可以避免类似这样的 CSS hack:

1 2 .foo { color: red;}3 * html .foo { color: yellow; } 4 *:first-child+html .foo { color: blue; } 5 6 7 .foo { color: red; *color: blue; _color: yellow;} 

 使用“HTML条件注释”来避免 CSS hack,这是一种目前比较流行而且比较安全稳定的技术。这种技术的代码有很多版本,再介绍一个比较有意思的,来自于 HTML5 Boilerplate:  

1 2 .foo { color: red;}3 * html .foo { color: yellow; } 4 *:first-child+html .foo { color: blue; } 5 6 7 .foo { color: red; *color: blue; _color: yellow;}

   文章写到这里,我感觉,写了这么多,全是大家可能都知道的事儿。其实,这篇文章的主题,不是讨论条件注释和 CSS hack 孰优孰劣,也不是讨论哪种条件注释方案最好,我想讲一些条件注释技术实现代码的细节。

  我们聚焦文章的第一段示例代码。看这段代码的第一行:

<!--[if lt IE 7]> <html class="ie6"> <![endif]-->

就算我们没有条件注释的知识,凭字面我们也能大概猜出这行代码的作用:在 IE6 或更低版本的浏览器中,这行注释会被解析成<html class="ie6">。在其他IE浏览器(IE7-9)中,它会被解析成空。在非IE浏览器中,毫无疑问,它会被当做我们所熟知的一般 HTML 注释,它会被忽略。事实上,浏览器的确是这样做的。

  在IE条件注释的概念体系中,一共有两种条件注释类型。这种条件注释的类型被称作 downlevel-hidden。它的语法是这样的:

<!--[if expression]> HTML <![endif]-->

语法的细节说明可以查看文章结尾的参考资源。

  在将要讨论语法怪异的第四行代码之前,让我们先思考一个问题。凭借现有的 HTML 条件注释的特性,我们能够实现“IE9、较IE9更高的 IE 版本以及非 IE 浏览器中,<html>保持原样”这一目标吗?

1 <!--[if gt IE 8 | !IE]> <html> <![endif]-->2 ...3 </html>

这样可以吗?不可以。IE9 浏览器中,注释条件为真,代码会解析为<html>。但是,IE10 以及非IE浏览器中,这行代码会被忽略,这会导致 HTML 文档缺少起始<html>标记。从高亮的HTML上,我们可以明显地看出来。特别强调一下,微软已经宣布,IE10 不再支持条件注释。

  凭借现有的 HTML 条件注释的特性,我们没有办法实现我们的目标。怎么办?

  在 IE 条件注释的概念体系中,还有另外一种条件注释类型叫 downlevel-revealed,它的语法是这样的:

<![if expression]> HTML <![endif]>

很幸运,我们可以利用 downlevel-revealed 类型的条件注释来实现之前的目标。

<![if gt IE 8]> <html> <![endif]>

  对于这行代码浏览器的解析是这样的:在 IE9 中,浏览器会识别出这是一段条件注释,并且条件为真,所以这段代码会解析为<html>。在IE8-IE5中,注释的条件为假,故解析为空。在 IE10 以及非 IE 浏览器中,<![if gt IE 8]> 以及 <![endif]>会被当做无法识别的标签,整条代码最终被解析为<html>。感谢微软,我们的目标实现了。

  但是,这段代码,是无法通过(X)HTML验证的。为了能够通过通过(X)HTML验证,我们可以使用一种改进的语法,代码可以修改为:

<!--[if gt IE 8]--> <html> <!--[endif]-->

 我们增加了4个 --,这使得代码看起来非常的怪异,这与downlevel-hidden类型有点差别,但它能被IE5-IE9识别为条件注释别并处理。对于改进过的代码,IE5-IE8的解析方式不变。IE10以及非IE浏览器会把<!--[if gt IE 8]-->  <!--[endif]-->当作一般注释来解析,最终结果不变。但是,IE9出问题了:注释条件仍然为真,解析结果却变成了--> <html>。我们再次改进一下语法,代码可以修改为:

<!--[if gt IE 8]<!--> <html> <!--[endif]-->

 我们只是增加了一个 <! 。 对于再次改进过的代码,IE5-IE8的解析方式不变。IE10以及非IE浏览器会把<!--[if gt IE 8]<!-->  <!--[endif]-->当作一般注释来解析,最终结果不变。IE9的问题被修复了。

关于“HTML条件注释的知识点有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“HTML条件注释的知识点有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: HTML条件注释的知识点有哪些

本文链接: https://lsjlt.com/news/309501.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HTML条件注释的知识点有哪些
    这篇文章主要介绍了HTML条件注释的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇HTML条件注释的知识点有哪些文章都会有所收获,下面我们一起来看看吧。最近经常看到类似这样的 HTML 代码片段,很...
    99+
    2023-06-27
  • java中的HTML知识点有哪些
    这篇文章主要介绍“java中的HTML知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java中的HTML知识点有哪些”文章能帮助大家解决问题。   1...
    99+
    2024-04-02
  • HTML元素的知识点有哪些
    这篇文章主要介绍“HTML元素的知识点有哪些”,在日常操作中,相信很多人在HTML元素的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML元素的知识点有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-27
  • html基础知识点有哪些
    这篇文章主要介绍了html基础知识点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。HTML语义化HTML标签的语义化是指:通过使用包含...
    99+
    2024-04-02
  • HTML规范知识点有哪些
    这篇文章主要介绍“HTML规范知识点有哪些”,在日常操作中,相信很多人在HTML规范知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML规范知识点有哪些”的疑惑...
    99+
    2024-04-02
  • HTML初级知识点有哪些
    今天小编给大家分享一下HTML初级知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2024-04-02
  • html入门知识点有哪些
    本文小编为大家详细介绍“html入门知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“html入门知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。   一、...
    99+
    2024-04-02
  • HTML媒体有哪些知识点
    这篇文章主要讲解了“HTML媒体有哪些知识点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML媒体有哪些知识点”吧!HTML 媒体(Media)1HTML 多媒体Web 上的多媒体指的是...
    99+
    2023-06-03
  • SQL注入的知识点有哪些
    本篇内容介绍了“SQL注入的知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!漏洞原因一些概念:SQL:用于数据库中的标准数据查询语...
    99+
    2023-07-05
  • HTML块元素的知识点有哪些
    这篇文章主要介绍“HTML块元素的知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML块元素的知识点有哪些”文章能帮助大家解决问题。大多数 HTML ...
    99+
    2024-04-02
  • html css基础知识点有哪些
    今天小编给大家分享一下html css基础知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • html+css入门知识点有哪些
    这篇文章主要介绍“html+css入门知识点有哪些”,在日常操作中,相信很多人在html+css入门知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html+css...
    99+
    2024-04-02
  • HTML中有哪些基础知识点
    本篇内容主要讲解“HTML中有哪些基础知识点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML中有哪些基础知识点”吧!一、 HTML的基本结构<head>  ...
    99+
    2023-06-27
  • HTML和CSS的重难点知识点有哪些
    这篇文章主要介绍“HTML和CSS的重难点知识点有哪些”,在日常操作中,相信很多人在HTML和CSS的重难点知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML...
    99+
    2024-04-02
  • HTML入门基础的知识点有哪些
    这篇文章给大家分享的是有关HTML入门基础的知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。标记、标签、元素标签和元素通常是描述同样的意思,但是严格来说,一个HTML元...
    99+
    2024-04-02
  • HTML常用的属性知识点有哪些
    这篇文章将为大家详细讲解有关HTML常用的属性知识点有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 定义: HTML属性:HTML元素提供的附加信息 简单的理...
    99+
    2024-04-02
  • java web的HTML和CSS知识点有哪些
    这篇文章主要介绍“java web的HTML和CSS知识点有哪些”,在日常操作中,相信很多人在java web的HTML和CSS知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • html中a标签的知识点有哪些
    这篇文章主要介绍“html中a标签的知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“html中a标签的知识点有哪些”文章能帮助大家解决问题。 a标签 ...
    99+
    2024-04-02
  • HTML标签语法的知识点有哪些
    这篇文章主要介绍“HTML标签语法的知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML标签语法的知识点有哪些”文章能帮助大家解决问题。 一、标签语...
    99+
    2024-04-02
  • HTML标签的基础知识点有哪些
    这篇文章主要介绍“HTML标签的基础知识点有哪些”,在日常操作中,相信很多人在HTML标签的基础知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML标签的基础知...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作