2

adfスキニングの問題に直面しています。私のスタイルシートは1800クラスを超えました。IEには4000スタイルクラスの制限があります。レンダリング中に、ADFは独自のクラスを追加します。したがって、4000を超え、シートの最後で参照しているスタイルはIEだけでは機能しません。同じアプリケーション用に新しいスタイルシートを定義する必要があります。

adf-faces-config.xmlにもう1つのスキンファミリを追加してみました。動作しませんでした。

助けてください。

前もって感謝します。

4

2 に答える 2

1

別のCSSを作成することで問題が解決するかどうかは、100%わかりません。また、複数のcss定義に慣れた後、特定のページのcssをロードするだけで、独自の利点が得られることに同意します。

ただし、CSSを整理することはできます。Webアプリはルックアンドフィールの一貫性を促進する必要があるため、1800のクラスを持つことはWebAppに入る適切な方法ではない可能性があります。

オラクルのフォーラムでは、特に現在のビューでel式チェックを使用してその場でスキンを切り替えることについて役立つかもしれない良い議論があります。

同じアプリケーション内の複数のスキン

また、そのフォーラムで、スキン追加の使用と、アプリでスキン追加を採用する理由についても言及しました。使用しているstyleClassesの数に達していない場合でも、cssはすでに3k行に達しているだけです。コンポーネント固有の600行、その他はすべてstyleClassです。また、トリニダードスキンが提供する「継承」を劇的に使用しました-tr-継承これにより、多くのコーディングを大幅に節約できました。

于 2011-08-25T02:17:17.813 に答える
0

extendsプロパティを使用すると、同じアプリケーションに複数のスタイルシートを使用できます。

trinidad-skins.xml

 <id>skin_1.desktop</id>
    <family>skin_1</family>
    <extends>simple.desktop</extends>
    <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
    <style-sheet-name>css/stylesheet_1.css</style-sheet-name>
  </skin>

  <skin>
    <id>skin_2.desktop</id>
    <family>skin_2</family>
    <extends>skin_1.desktop</extends>
    <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
    <style-sheet-name>css/stylesheet_2.css</style-sheet-name>
  </skin>

trinidad-config.xml

<trinidad-config xmlns="http://myfaces.apache.org/trinidad/config">

  <skin-family>skyros</skin-family>
  <skin-version>v1</skin-version>

  <skin-family>skin_2</skin-family>

</trinidad-config>
于 2014-11-20T09:48:51.323 に答える