如何阻止richfaces为面板和日历添加边框?
题
我希望使用自定义richfaces皮肤来处理我的大部分演示文稿工作。不幸的是,richfaces在日历组件和每个面板周围的每个单元格周围渲染边框。我想把它们关闭,以便天数站点在一个没有边框的开放网格中。使用皮肤或日历控件的属性没有明显的方法可以做到这一点。
我可以使用自定义CSS但我更喜欢使用框架从richfaces 创建的样式表中完全删除边框相关属性,而不是使用丑陋的CSS来覆盖框架并覆盖所有内容
那么如何阻止richfaces为面板和日历添加边框?
这家伙有类似问题
解决方案
从版本3.3.0.GA开始,不可能要求richfaces停止为边框和背景渲染CSS。必须覆盖内置样式表中的每个属性(org.richfaces.renderkit.html.css中包含的属性,这是richfaces-ui-3.3.0.GA.jar的一部分)。
插件和皮肤为您提供了必要的能力,就像使用常规技术添加的自定义CSS一样,虽然插件和皮肤可以说更好,因为您可以引用抽象颜色定义来补偿缺少的背景,如下所示: / p>
<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标记库中使用某种条件输出功能(由http:/jsf.exadel.com/template/util或http:/jsf.exadel.com/template在XCSS文件中标识)我期望用它来包装XCSS文件中的CSS属性组。
如果您对richfaces进行了这样的修改,那么您就可以从任何皮肤的属性文件中禁用有争议的CSS渲染。
其他提示
有一个名为 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
中设置。