从版本 3.3.0.GA 开始,无法要求 richfaces 停止渲染边框和背景的 CSS。有必要覆盖内置样式表中的每个属性(org.richfaces.renderkit.html.css 中包含的属性,它是 richfaces-ui-3.3.0.GA.jar 的一部分)。
插头和皮肤为您提供了必要的能力来做到这一点,就像使用常用技术添加自定义 CSS 一样,尽管插件和皮肤可以说更好,因为您可以引用抽象颜色定义来补偿缺失的背景,如下所示:
<u:style name="color" skin="abstractColorName" />
以下 CSS 属性对于快速中和边框和背景相关属性非常有用。
border: none;
background: transparent;
要开始使用插件和皮肤,您可以使用以下 Maven2 命令序列:
mvn archetype:generate -DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-plug-n-skin -DarchetypeVersion=3.3.0.GA -DartifactId=fil-skins -Dpackage=com.feelitlive.richfaces -DgroupId=com.feelitlive.server -Dversion=0.0.1-SNAPSHOT -DarchetypeRepository=http://repository.jboss.com/maven2/
cd fil-skins
mvn cdk:add-skin -Dname=fil -Dpackage=com.feelitlive.richfaces.skins
最好从命令行完成此操作,因为不幸的是 Eclipse 插件无法在 jboss 存储库中找到原型(其他 IDE 可能会更好地处理这个问题)。您需要更改 artifactId、groupId、package、version 和 name 属性以适合您的项目。选择反映保存多个皮肤定义的工件范围的工件和包名称。
尽管需要做很多工作,但可以添加对通用格式 xxxBackgroundEnabled 和 xxxBorderEnabled 的外观属性的支持,以根据具体情况关闭这些边框和背景 CSS 的渲染。
您需要与 richfaces 团队合作来修补 org.richfaces.renderkit.html.css 中的 xcss 文件。您还需要 XCSS JSF 标记库之一中的某种条件输出功能(由 XCSS 文件中的 http://jsf.exadel.com/template/util 或 http:/jsf.exadel.com/template 标识)我期望使用它来将 CSS 属性组包装在 XCSS 文件中。
如果您对 richfaces 进行了这样的修改,那么您将能够从任何皮肤的属性文件中禁用有争议的 CSS 渲染。