我正在开发一个使用 ubiquity-xforms 的应用程序。以前,我一直使用 XHTML 1.0 doctype 将页面作为 text/html 提供。
如果我将 mime 类型切换为 application/xhtml+xml,我会看到相当大的性能改进,因为 javascript 可以使用 get____NS() 函数,而不是现在正在做的事情(每次都缓慢地遍历整个 DOM 树它需要选择一个元素)。
但是当我尝试这个时,我的一堆 CSS 停止工作了。我注意到,当我在 Firebug 或 WebKit Nightly Web Inspector 中检查元素时,失败点是 XFORMS 命名空间中元素上的 '.classname' 和 '#id' css 选择器。我还注意到,在这些元素的列出的 DOM 属性中,它们缺少“id”和“className”属性。
我的问题是,有没有办法让 UA 将这些识别为类和 id?
我尝试过的事情无济于事:
- 将“id”属性指定为内联文档类型的 ATTLIST 中的 ID
- 尽我所能尝试每一个文档类型,或者根本没有文档类型
- 限定 xhtml 命名空间中的 id 和类名属性(即 xhtml:id)
这是一些示例 xhtml。不适用于 Firefox 3.5 或 Safari 4 / WebKit Nightly
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<style type="text/css">
/* <![CDATA[ */
#test {
background-color: red;
}
.testing {
color: blue;
}
/* ]]> */
</style>
</head>
<body>
<xf:group id="test" class="testing">Test</xf:group>
</body>