CSS   发布时间:2022-04-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了css – Richfaces Skin Overriding Styleclass大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个JSF2 / Richfaces 4项目,其中我想使用一个默认皮肤,但我也想使用我自己的自定义样式表设置一些东西的风格.这听起来很简单,但是我发现,至少在某些情况下,我自己的风格没有被使用.要明确,这里是我相关的web.xml上下文参数:
<context-param>
    <param-name>org.richfaces.skin</param-name>
    <param-value>blueSky</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.control_skinning</param-name>
    <param-value>enable</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.control_skinning_classes</param-name>
    <param-value>enable</param-value>
</context-param>

我的CSS文件包含:

<h:outputStylesheet name="jsp-css.css" library="css" />

一个这样的实际风格定义:

.obsOptBtnSel{
BACkground-color: transparent;
BACkground-image: url('/images/circleY.gif');
BACkground-repeat: no-repeat;
BACkground-position: center;
border: none;
text-align: center;
width: 2em;
height: 2em;
}

而实际的按钮使用风格:

<h:commandButton
value="?"
styleClass="#{obs.observation.observationExtent == -1.0 ? 'obsOptBtnSel' : 'obsOptBtnUns'}"
id="unknownButton"
/>

所以,人们会认为我会从相关的blueSky皮肤继承样式,然后由于我指定了一个样式类,所以自定义样式表中提到的任何属性都将被覆盖.

但是,当我看到Firebug中的元素时,我看到我的styleClass被皮肤指定的styleClass覆盖,例如它不断使用blueSky背景图像而不是我的.

我知道我可以通过在样式表中的所有样式之后简单地放置!重要的,但这似乎是一个非常肮脏和不必要的方式来处理这个问题.

我在这里做错了什么?还有另一个解决方案吗?

解决方法

RichFaces已经在输入[type = submit] CSS选择器上指定了一个默认的背景,这是一个比.obsOptBtnSel更强大的选择器.基本上有两个选择:

>重命名你的选择器来输入[type = submit] .obsOptBtnSel来使它更强大.

input[type=submit].obsOptBtnSel {
    BACkground-color: transparent;
    BACkground-image: url('/images/circleY.gif');
    BACkground-repeat: no-repeat;
    BACkground-position: center;
    border: none;
    text-align: center;
    width: 2em;
    height: 2em;
}

注意,这4个背景属性可以设置为背景oneliner与子属性在顺序彩色图像位置重复:

BACkground: transparent url('/images/circleY.gif') center no-repeat;

>添加!对背景属性重要,以覆盖由其他CSS选择器设置的相同元素上的所有非!重要属性.

.obsOptBtnSel {
    BACkground-color: transparent !important;
    BACkground-image: url('/images/circleY.gif') !important;
    BACkground-repeat: no-repeat !important;
    BACkground-position: center !important;
    border: none;
    text-align: center;
    width: 2em;
    height: 2em;
}

或者,更短,

BACkground: transparent url('/images/circleY.gif') center no-repeat !important;

大佬总结

以上是大佬教程为你收集整理的css – Richfaces Skin Overriding Styleclass全部内容,希望文章能够帮你解决css – Richfaces Skin Overriding Styleclass所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。