我在我的网络程序中遇到问题。我的表单中有一个textarea,有时textarea中什么都没有,所以genshi模板引擎只是将它输出为
<textarea xxxx />
问题来了,以下所有标签都在文本区域中。为什么所有浏览器都不能正确处理单个文本区域?
如果我把它写成
<textarea xxxx></textarea>
一切正常。为什么单个 textarea 会混淆 xhtml 中的以下标签?
因为您大概是在为您的 XHTML 提供 text/html 内容类型并使其被处理为 HTML。XML 样式的自闭合标签在 HTML 中不存在(因此您必须使用明确的开始和结束标签,除非它们被禁止(例如 img 上的结束标签)或可选(例如 body 元素上的开始和结束标签)。
如果您希望将您的页面作为 XHTML 处理,则将其用作 application/xhtml+xml(并告别 Internet Explorer 的支持)。
(这就是为什么我在大多数项目中坚持使用 HTML 4.01)
有关详细信息,请参阅http://www.w3.org/TR/xhtml-media-types/(包括将 XHTML 调整为 HTML 用户代理可以处理的形状的完整兼容性指南)。