例如,
<book>
Harry Potter
<chapter>
Chapter 1
</chapter>
<chapter>
Chapter 2
</chapter>
</book>
&#13;
#define MY_DEFINITION
&#13;
此HTML代码段具有清晰的语法,但是,我不确定大多数浏览器是否支持它。这种方法有什么缺点,比如搜索引擎优化问题吗?
答案 0 :(得分:3)
您在这里谈论自定义HTML标记。你可以&#34;创建&#34;大多数现代浏览器都支持的自定义HTML元素。
除非您先创建&#39;否则Internet Explorer无法识别这些标记。他们使用JavaScript:
document.createElement('tagName');
注意:默认情况下,所有自定义元素都有display: inline
,可以通过CSS或JavaScript进行修改。自定义标记在HTML5中也无效。
答案 1 :(得分:1)
原则上这很好,但我会使用XHTML5而不是HTML5,因为它允许引入替代的XML命名空间。然后,我会在自己的命名空间中使用您的自定义元素,以避免冲突(例如,如果未来的HTML修订版添加了book
和chapter
元素,那么。
<html xmlns:hanfeisun="http://someReservedURIPossiblyYourXsdPath">
...
<hanfesisun:book>
<hanfesisun:chapter>
Chapter 1
</hanfesisun:chapter>
</hanfesisun:book>
...
</html>
在CSS中,您需要使用@namespace
块(https://developer.mozilla.org/en-US/docs/Web/CSS/@namespace)
@namespace hanfeisun url(http://someReservedURIPossiblyYourXsdPath);
hanfeisun|chapter { display: block; }
为了简洁起见,您可以使用较短的命名空间前缀,例如h
而不是hanfeisun
。
答案 2 :(得分:1)
您可以使用适合您内容的架构类型的semanthic html5(文章,摘要等):https://schema.org/Book,因此无需创建其他HTML标记
答案 3 :(得分:0)
您正在谈论Web组件(自定义的html元素)。实现这一目标的标准化方法是W3C工作组的发展主题。如果您对他们的进展感兴趣:
http://w3c.github.io/webcomponents/spec/custom/
它不仅仅是在浏览器中正确显示任何自定义标签:
虽然很可能使用任何标记名称创建DOM元素 在HTML中,这些元素不是很有用。通过提供Web 开发人员既可以通知解析器如何正确使用 构造一个元素并对元素的生命周期变化做出反应, 该规范消除了对DOM-as-a-render-view的需要 在大多数Web框架中必须存在的脚手架或 库。