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 として認識させる方法はありますか?
私が試したこと、無駄に:
- インラインDoctypeのATTLISTで「id」属性をIDとして指定する
- 私ができるすべてのDoctypeを試すか、Doctypeをまったく試しません
- xhtml 名前空間 (つまり、xhtml:id) で 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>