如何在adf框架中定义多个样式表

时间:2011-03-27 07:04:39

标签: stylesheet skinning oracle-adf

我遇到了adf skining的问题。我的样式表超过了1800个班级。 IE有4000个样式类的限制。在渲染时,ADF会添加自己的类。所以它超过了4000,而我在最后一张表中提到的样式在IE中并不起作用。我需要为同一个应用程序定义一个新的样式表。

我尝试在adf-faces-config.xml中添加一个skin-family。没用。

请帮忙。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我不是百分之百确定如果创建一个单独的CSS将解决您的问题,并且我确实同意在用于多个css定义并且仅为特定页面加载css有其自身的优点。

你可以做的一件事就是组织CSS,因为一个webapp应该提高外观的一致性,所以有1800个类可能不适合进入WebApp。

在oracle论坛中有一个很好的讨论可以帮助你解决这个问题,特别是在你当前视图上使用el表达式检查来动态切换你的皮肤。

Multiple Skin in the same application

我在论坛中也提到了使用皮肤添加以及我为我们的应用程序添加皮肤添加的原因,即使我们没有达到你拥有的styleClasses的数量,我们的css已经达到了3k只有600行的特定组件,其他一切都是styleClass。我们还大大使用了特立尼达皮肤提供的“强度” -tr-inherit ,这确实为我们节省了很多代码。

答案 1 :(得分:0)

使用extends属性,您可以将多个样式表用于相同的应用程序。

<强>特立尼达-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>
相关问题