如何停止RichFaces在面板和日历中添加边框?

9
我希望使用自定义的richfaces皮肤来处理我的大部分演示工作。不幸的是,richfaces在日历组件的每个单元格周围以及每个面板周围呈现边框。我想关闭它们,以便日期数字在没有边框的开放网格中显示。使用皮肤或日历控件的属性没有明显的方法可以做到这一点。
我可以使用自定义CSS,但是我更喜欢使用框架完全从richfaces创建的样式表中删除与边框相关的属性,而不是使用丑陋的CSS来反对框架并覆盖所有内容。
那么,如何阻止richfaces向面板和日历添加边框?

这个人有一个类似的问题

3个回答

5
从版本3.3.0.GA开始,无法要求richfaces停止呈现边框和背景的CSS。 必须覆盖内置样式表(在richfaces-ui-3.3.0.GA.jar中包含的org.richfaces.renderkit.html.css文件中)中的每个属性。
通过插件和皮肤可以实现此功能,使用通常的自定义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添加到RichFaces中,以便可以按情况关闭这些边框和背景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的呈现。


4

有一种名为plain的皮肤,几乎没有任何样式与之关联。

以下是来自文档摘录

从3.0.2版本开始添加了皮肤'plain'。它没有任何参数。将其嵌入到具有自己样式的现有项目中的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中不起作用


“plain”仍然渲染了太多的CSS! - Simon Gibbs

1

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

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

或者

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接