我正面临 adf 皮肤问题。我的样式表跨越了 1800 个类。IE 有 4000 个样式类的限制。渲染时,ADF 添加自己的类。所以它超过了 4000 并且我在最后一张表中提到的样式不能单独在 IE 中工作。我需要为同一个应用程序定义一个新的样式表。
我已经尝试在 adf-faces-config.xml 中再添加一个皮肤系列。不工作。
请帮忙。
提前致谢。
我正面临 adf 皮肤问题。我的样式表跨越了 1800 个类。IE 有 4000 个样式类的限制。渲染时,ADF 添加自己的类。所以它超过了 4000 并且我在最后一张表中提到的样式不能单独在 IE 中工作。我需要为同一个应用程序定义一个新的样式表。
我已经尝试在 adf-faces-config.xml 中再添加一个皮肤系列。不工作。
请帮忙。
提前致谢。
我不是 100% 确定创建一个单独的 CSS 是否能解决您的问题,并且我同意在习惯了多个 css 定义之后,只为特定页面加载 css 有其自身的优势。
您可以做的一件事是组织 CSS,拥有 1800 个类可能不是进入 WebApp 的合适方式,因为 Webapp 应该促进外观和感觉的一致性。
在 oracle 论坛中有一个很好的讨论可能会帮助您,特别是在您当前视图上使用 el 表达式检查来动态切换您的皮肤。
我还在那个论坛中提到了关于使用皮肤添加以及我为我们的应用程序添加皮肤的原因,即使我们没有达到你拥有的 styleClasses 的数量,我们的 css 已经达到 3k 行只有组件特定的 600 行,其他一切都是 styleClass。我们还极大地使用了 trinidad 皮肤提供的“继承” -tr-inherit,这确实为我们节省了大量编码。
使用 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>