2010-11-29 47 views
3

有什么办法(服务器或客户端),我可以实际扩展HTML以包含新标签?例如,它会很酷,如果我可以写类似的东西定义的blogpost一个模式片段,其中包含了postname,一个postauthor,一个posttimepostcontent,然后请参阅我的HTML blogpost而不是诉诸基本HTML divp标签。XHTML是否真的Xtensible?

+0

另一个有趣的问题是:如果您只是使用这些自定义元素并将CSS规则应用于它们,哪些浏览器可以工作(如开箱即用)? – 2010-11-29 23:00:42

回答

2

听起来像HTML5是你的胡同!

您可以使用像section元素来包装你所有的帖子,并article每个岗位,再加上基本一样headernavfooter。没有细粒度的元素,例如postauthor或posttime,但是您可以提供其他属性来帮助定义这些元素。

嗯,看来我说话很快,你可以使用这个太:

<time pubdate datetime="2010-11-13T20:00+09:00">Posted Nov 13.</time> 
+0

同意!我等不及了。 – Stephen 2010-11-29 22:40:06

2

太棒了。 Here is an article解释为什么它不起作用。基本上,你可以扩展标记。但HTML浏览器不会知道如何解释你的新标签。

+0

这与我所谈论的很接近。 (尽管在尝试创建新的DTD之前,我可能会尝试创建一个新的XML Schema) – JnBrymn 2010-11-29 22:57:07

+0

请您详细说明一下。 HTML浏览器是什么意思?除IE以外的所有现代浏览器都有一个XML解析器。哪些浏览器知道如何解释自定义标签,哪些不知道? – 2010-11-29 23:02:38

+0

被引用的文章令人难以置信地过时('Netscape Navigator'?)。另外,我怀疑浏览器并没有根据文件扩展名将文件内容解释为HTML,正如他们声称的那样。 – ijw 2012-09-12 12:29:47

0

对于一般的Web开发人员,没有。你需要编写自己的DTD来拥有自己的标签,即使如此,除了自己的理智之外,对于任何其他语义来说,它都不会从中受益。

此外,一些浏览器ahem IE将不知道如何处理您的自定义标签,你将不得不求助于JavaScript来教它。不是真的推荐...

0

虽然浏览器不会立即理解基于XML派生扩展性的扩展,但这并不意味着人们不会在解决这个问题。撇开你的想法,最好的解决方案可能是microformats。以您的博客为例,hAtom

那么你得到的东西,浏览器理解,但可以逐步提高随着越来越多的系统支持hAtom,您可以使用样式类引用条目像.hentry.entry-title.author

0

可以将自定义标签添加到DOM树。你不会得到有效的XHTML,但只要你正确地设计了它们,浏览器就会理解这些标签。

使用此浏览器行为的一个非常有趣的项目是WebODF,一个将ODF文档带到浏览器的工具。查看网站上的视频和现场演示,了解它是如何工作的。

0

您可以通过将XHTML与您的自定义语言混合来添加自定义标签。该语言不再是XHTML,而是一种复合语言,包括XHTML,但这始终是XHTML的意图。

但是,您需要正确使用XHTML,并使用XML MIME类型(如application/xhtml + xml)提供服务,这意味着在IE9之前不支持IE。

可以使用博客帖子,postname看到一个例子,postauthor等在这里:

http://www.alohci.net/application/xhtml+xml/custom1.xhtml.ashx

(工程在火狐,Chrome,Safari浏览器,Opera和IE9)


[当然,您可以将无效标签放入HTML中并对其进行设计,但对我而言,这似乎并不是我所关心的问题,这特别是关于XHTML的可扩展性。]