html前缀命名空间冲突

时间:2018-04-25 22:48:01

标签: html5

我目前有以下html prefix namespaces

<html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/
dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/
og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema#
schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns#
sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core#
xsd: http://www.w3.org/2001/XMLSchema# ">

我正在阅读一些东西并且遇到了这个:

<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->

以下是我的问题:

1. /是否将此添加到我的html网页干扰/碰撞与我当前的前缀命名空间?

2. /对于if (gte IE 9)的情况,为什么在html声明之前有一个封闭的评论<!-->,在声明之后有<!--

3. /我可以用这种声明做什么?

1 个答案:

答案 0 :(得分:0)

  1. 您只能拥有一个<html>代码,但您可以将第一个示例中的属性添加到第二个代码中的<html>代码中。你想要实现什么目标?

  2. 您的第二个示例包含条件评论。它们仅受旧版Internet Explorer支持。其他浏览器会将它们视为普通的HTML注释 - 即它们会忽略它们。示例的最后一行关闭HTML标记之前的注释,以便所有非IE浏览器仍会看到<html lang="en">标记。如果它被写成

    <!--[if (gte IE 9)|!(IE)]><html lang="en"><![endif]-->
    

    <html>标记会在评论中,因此会被所有浏览器忽略。

  3. 您发布的代码的目的是将特定于IE版本的类输出到<html>标记。它允许您编写用于定位特定IE版本的CSS声明,例如:

    body {
       background-color: white;
    }
    
    .ie7 body {
        background-color: red;
    }
    

    这将使除IE7用户之外的所有人的页面背景为白色,对于谁来说它将是红色的。

  4. 在实践中,除非您迫切需要支持Microsoft自己不再支持的IE版本,否则这些日子并不常用这些解决方案。