Xml 扩展HTML5标记集合

Xml 扩展HTML5标记集合,xml,html,Xml,Html,正如您所知,HTML5引入了一些新的html标记,如页脚、页眉等 是什么阻止我们使用大量其他新标签并将shiv应用于这些新标签?(从功能、行为、风格、结构等角度) 我希望使用以下代码(更语义、更简洁、更可读,是Web 3.0的一个进步): 书{ 显示:块; 颜色:红色; } 书名{ 显示:内联块; 字体大小:粗体; } 我的头衔 而不是使用以下传统的(!)代码: 分区簿{ 颜色:红色; } 书名{ 字体大小:粗体; } 我的头衔 这似乎是RDFa的一个用例。事实上,有一个非常相似的例子。这

正如您所知,HTML5引入了一些新的html标记,如页脚、页眉等

是什么阻止我们使用大量其他新标签并将shiv应用于这些新标签?(从功能、行为、风格、结构等角度)

我希望使用以下代码(更语义、更简洁、更可读,是Web 3.0的一个进步):


书{
显示:块;
颜色:红色;
}
书名{
显示:内联块;
字体大小:粗体;
}
我的头衔
而不是使用以下传统的(!)代码:


分区簿{
颜色:红色;
}
书名{
字体大小:粗体;
}
我的头衔

这似乎是RDFa的一个用例。事实上,有一个非常相似的例子。这里是你能做的(我知道,这比你的建议更冗长,但谁说语义越多意味着越简洁?)


网页标题
div[typeof=“bibo:Book”]{
颜色:红色;
}
span[property=“dc:title”]{
字体大小:粗体;
}
我的头衔
这里,您是说有一个类型为
bibo:Book
(您需要定义一个引用词汇表的名称空间,这里是)的实体,该实体有一个
dc:title
(同样,该属性是在词汇表中定义的)。
您可以看到,我正在使用CSS2选择器对书籍进行适当的格式化。

您想要的内容可以在原始XML中完成

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="main.css" type="text/css"?>
<Root>
  <book>
    <title>
      My Title
    </title>
  </book>
</Root>
足够简洁?

已经是HTML中的一个元素。您知道在所有HTML消费者中这样做会发生什么吗?例如,在IE8和更早版本中


即使您将自己限制为HTML中目前不存在的元素,您如何防止将来出现同名元素,浏览器中的行为会破坏您的页面?

使用您自己的标记在某种程度上效果很好,这听起来很诱人。但是,您并没有以这种方式添加任何含义(语义);发明的标签没有定义的含义,而假装标签名称描述了含义是一种错觉

。但您的简单示例还演示了HTML规范中定义的标记的扩展用法。如果一个文档包含多个
title
元素,或者一个
title
元素超出其“合法”范围,即
head
元素,谁知道会发生什么?谁知道搜索引擎会怎么想呢

关键是
title
是在HTML中定义的,浏览器以自己的方式处理它,这是您无法控制的。如果浏览器决定将错位的
标题
元素视为
标题
中的标准元素,并因此以特定方式使用它(例如,在顶栏或选项卡控件中),您可以对此做些什么?如果它甚至覆盖了符合标准的
标题
元素,您会怎么做

如果您只是使用自定义标记,您可能会决定忽略IE问题(使用JavaScript无法完全解决这个问题,因为JavaScript可能被禁用)。但是,当一些浏览器供应商开始支持扩展标记时,您仍然会使用一些可能会崩溃的东西,而扩展标记恰好与您的标记同名(但含义不同)。而
是一个很好的选择。有一天,它甚至可能会出现在HTML规范中;HTML5草稿已经有


您的样式表可能会覆盖当前CSS中可描述的任何默认表示,但浏览器可能会使用扩展的CSS功能,或者使用CSS中不可描述的表示功能。新标签的默认功能可能会让您大吃一惊,现在几乎无法预料。

不知道这有什么关系这是一个有效的想法,我想,但您需要XSLT才能返回到可浏览的网页。@WilliamGreenly请看Alohci的答案。试图发明新元素并在HTML中重用现有元素是一个糟糕的想法!此外,OP的示例甚至没有显示IE7和IE8中的任何内容。因此,我试图提供一些获得OP所需内容的替代方法,而不是帮助他们走上错误的道路。@AntoineZimmermann您可以使用XSLT,是的,但即使是一个简单的
xmlns=”http://www.w3.org/1999/xhtml“
Root
start标记上的
属性将使我的示例可浏览!(哦,好吧,不在IE中。)@Lister先生,我也认为你的代码是完美的。但我想知道为什么基于XML的页面没有广泛用于网站设计。可以在XML文件中包含js文件吗?jquery呢?我们可以使用XML设计HTML可以生成的所有东西吗?(例如,元素)。如果可以,基于XML的网页是否与主要的web浏览器兼容?你能提到一些使用XML(Web3.0Web页面)的网站吗?谢谢。但我的问题是,为什么上面提到的代码没有被广泛使用,而它更具语义、简洁和可读性。使用RDFa,您可以在不干扰HTML的情况下温和地丰富HTML。例如,如果您有一个
元素,它也是一本书的标题,您可以简单地向它添加一个
属性。此外,使用RDFa,您可以表示任意的图形结构,而仅限于带有XML标记的树结构。此外,RDFa是一个标准,因此它不可能被一致的浏览器忽略。最后,RDFa对RDF进行编码,因此它也可以被语义Web搜索引擎索引,使用SPARQL查询,集成在三重存储中,等等。1:我们可以使用HTML5shiv方法处理旧的IE。2:这不是一个重要的问题,因为我们的页面已经覆盖(或者可以编辑以覆盖)未来的新HTML标记。(类似CSS重置方法)@Reza-1。不,你不能,它不能解决这个问题。2.不,你不能,不总是这样。例如,尝试使用CSS显示
标记的内容。我建议你试试这些东西,而不是假设。非常感谢。如果我不
   <style type="text/css">
        div.book {
            color: red;
        }

        div.book div.title {
            font-weight: bold;
        }
    </style>

    <div class="book">
        <span class="title">My title</span>
    </div>
<html
  xmlns="http://www.w3.org/1999/xhtml"
  prefix="bibo: http://purl.org/ontology/bibo/
          dc: http://purl.org/dc/terms/"
>
  <head>
    <title>Title of the web page</title>
    <style type="text/css">
      div[typeof="bibo:Book"] {
        color: red;
      }
      span[property="dc:title"] {
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <div typeof="bibo:Book">
      <span property="dc:title">My title</span>
    </div>
  </body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="main.css" type="text/css"?>
<Root>
  <book>
    <title>
      My Title
    </title>
  </book>
</Root>
book {
    display: block;
    color: red;
}

book title {
    display: inline-block;
    font-weight: bold;
}