我对此真的不确定:使用“ JSP文档” /“ XML表示法的JSP”是否意味着输出XHTML?
如果是这样,是否有什么特别的照顾要产生一个“有效的” XHTML页面?
更具体地说:我可以使用有效的“ JSP文档”(XML中的JSP)来生成无效的XHTML页面吗?
这至少意味着使用和生成格式良好的XML。如果编写无效的XML,则在解析期间它将出错。如果它产生良好的XML,那么它可以是不可能HTML4因为闭shorttags喜欢br,hr,meta和link被禁止。
br
hr
meta
link
在使用JSP文档时,您建议提供什么服务? 过渡的?严格?HTML5 XML?HTML5 HTML?(HTML5允许关闭标签,如<br/>)
<br/>
由于XML格式正确,因此您应该选择XHTML或HTML5。当HTML5规范仍处于草稿模式时,它允许关闭短标签。另请参阅第3.2.2节“元素”的结尾:
但是,某些元素完全禁止包含任何内容。这些被称为空元素。在HTML中,以上语法不能用于void元素。对于此类元素,必须省略end标签,因为解析器会自动关闭该元素。这些元素包括,除其他外,br,hr,link 和meta HTML示例: <link type="text/css" rel="stylesheet" href="style.css"> 在XHTML中,XML语法要求规定必须使用上述的显式结束标记或空元素语法将其显式。这是通过在开始标记的结尾处在直角括号之前的位置插入斜杠来实现的。 例: <link type="text/css" href="style.css"/> 作者还可以选择 对HTML语法中的void元素使用相同的语法。一些作者还选择在斜杠之前包含空格,但这不是必需的。(以这种方式使用空格是从XHTML 1.0附录C中的兼容性准则继承的约定。)
但是,某些元素完全禁止包含任何内容。这些被称为空元素。在HTML中,以上语法不能用于void元素。对于此类元素,必须省略end标签,因为解析器会自动关闭该元素。这些元素包括,除其他外,br,hr,link 和meta
HTML示例:
<link type="text/css" rel="stylesheet" href="style.css">
在XHTML中,XML语法要求规定必须使用上述的显式结束标记或空元素语法将其显式。这是通过在开始标记的结尾处在直角括号之前的位置插入斜杠来实现的。
例:
<link type="text/css" href="style.css"/>
作者还可以选择 对HTML语法中的void元素使用相同的语法。一些作者还选择在斜杠之前包含空格,但这不是必需的。(以这种方式使用空格是从XHTML 1.0附录C中的兼容性准则继承的约定。)
然后,过渡和严格之间的选择取决于您要支持的Web标准的程度。为此,在底部的表的这个网站提供了一个很好的概述。
首先,您要尽可能避免使用 Quirks模式 ,因为这会触发MSIE浏览器中的框模型错误,当CSS指定时,该错误会导致元素的边距,内边距,尺寸不一致。缺少文档类型或不正确的文档类型将触发此模式。
我强烈建议选择“ 严格” 文档类型,因为这样盒子模型和行为在世界范围内意识到的不同网络浏览器中将尽可能保持一致。以下两种doctype都可以,取决于您要支持/确认的元素/属性。
XHTML 1.0严格:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
或较新的XHTML 1.1(严格的,基于模块的):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
或(仍处于草稿模式)HTML5 doctype:
<!DOCTYPE html>
请注意,您需要确保将HTTP Content- Type标头设置为text/html,而application/xml不是application/xhtml+xml在使用XHTML时设置,否则MSIE可能仍然会发疯,因为它不支持该标头。另请参阅上述doctype网站以获取更多详细信息。同一篇文章确实提到了服务XHTML作为text/html被认为是有害的,但这只适用于当它得到呈现 与 该<?xml?>声明和/或包含未嵌入JavaScript的内联CDATA块。
Content- Type
text/html
application/xml
application/xhtml+xml
<?xml?>
CDATA