9

我希望使用自定义的 Richfaces 皮肤来处理我的大部分演示工作。不幸的是,richfaces 会在日历组件中的每个单元格和每个面板周围呈现边框。我想将它们关闭,以便当天数字站点在一个没有边界的开放网格中。没有明显的方法可以使用日历控件的外观或属性来做到这一点。

我可以使用自定义 CSS,但我更喜欢使用框架从 Richfaces 创建的样式表中完全删除与边框相关的属性,而不是针对框架工作并使用丑陋的 CSS 覆盖所有内容。

那么如何阻止richfaces 向面板和日历添加边框呢?


这个人也有类似的问题

4

3 回答 3

5

从 3.3.0.GA 版本开始,无法要求 Richfaces 停止为边框和背景渲染 CSS。有必要覆盖内置样式表中的每个属性(包含在 org.richfaces.renderkit.html.css 中的那些,它是richfaces-ui-3.3.0.GA.jar 的一部分)。

Plug and skin为您提供了执行此操作的必要功能,就像使用常用技术添加的自定义 CSS 一样,尽管 plug and skin 可以说更好,因为您可以参考抽象颜色定义来弥补缺失的背景,如下所示:

<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、包、版本和名称属性以适合您的项目。选择反映工件范围的工件和包名称以保存多个皮肤定义。


有可能 - 尽管需要做很多工作 - 以通用格式 xxxBackgroundEnabled 和 xxxBorderEnabled 添加对皮肤属性的支持,以逐个关闭这些边框和背景 CSS 的呈现。

您需要与richfaces 团队合作修补org.richfaces.renderkit.html.css 中的xcss 文件。您还需要某个 XCSS JSF 标记库中的某种条件输出功能(在 XCSS 文件中由 http:/jsf.exadel.com/template/util 或 http:/jsf.exadel.com/template 标识)我预计用它来包装 XCSS 文件中的 CSS 属性组。

如果您对 Richfaces 进行了这样的修改,那么您将能够从任何皮肤的属性文件中禁用有争议的 CSS 的呈现。

于 2009-03-09T22:25:37.403 回答
4

有一种皮肤叫它plain几乎没有任何样式。

这是文档的摘录

皮肤“普通”是从 3.0.2 版本添加的。它没有任何参数。有必要将 RichFaces 组件嵌入到具有自己样式的现有项目中。

您可以通过添加来激活它

<context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <param-value>plain</param-value>
</context-param>

web.xml.


您还可以阻止 RichFaces 加载任何样式

<context-param>
     <param-name>org.richfaces.LoadStyleStrategy</param-name>
     <param-value>None</param-value>
</context-param>

设置在web.xml.

但要小心,因为它在 JBoss Portlet Bridge 1.0.0 中不起作用

于 2011-11-24T09:59:05.893 回答
1

RichFaces 有一个内置的皮肤系统,称为 Skinnablity。Skinnability 是标准 CSS 的高级扩展。您可以创建自己的皮肤文件以在您的应用程序中使用(jboss 文档)。

在richfaces-impl jar 中,文件夹/META-INF/skins 包含所有皮肤文件(.skin.properties)。复制一个并重命名它,修改你想要的。您将不得不重建 jar。

或者

您可以使用richfaces 的plug-n-skin功能,这是我以前从未尝试过的,但看起来它也适用于您正在尝试做的事情。

于 2009-03-09T13:52:34.873 回答