如何覆盖特定 <p:panelGrid> 的 .ui-panelgrid td

com*_*axx 3 css jsf primefaces

如何覆盖<p:panelGrid>Stylecheet 中的特定内容?

根据这个:如何隐藏时间段......

我试过:

#frm_dash\3Adisplay td.ui-panelgrid {
    padding:0px 0px;
}
Run Code Online (Sandbox Code Playgroud)

#frm_dash\3Adisplay .ui-panelgrid td {
    padding:0px 0px;
}
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用。

该页面是按照以下物理结构构建的:

<h:form id="frm_dash">
    [...]
    <p:panelGrid id="pnlg_page" style="width: 100%;">
        [...]
        <p:row>
            <p:column style="width: 50%; vertical-align: top" colspan="1">

                <p:panelGrid id="display" columns="2"> 
                    [...]
                </p:panelGrid> 

            </p:column>

            <p:column colspan="1" style="vertical-align: top;">
                [...]                                       
            </p:column>
        </p:row>
        [...]
    </p:panelGrid>
    [...]
</h:form>
Run Code Online (Sandbox Code Playgroud)

Primefaces 3.4.1。- Tomcat 7.x - 莫哈拉

感谢您的帮助。

Bal*_*usC 5

你犯了2个错误:

  1. 后面必须\3A有一个空格。

  2. 该类.ui-panelgrid是在其自身上设置的<table>,而不是在其子类上设置的。

所以,这应该做:

#frm_dash\3A display.ui-panelgrid td {
    padding: 0;
}
Run Code Online (Sandbox Code Playgroud)

或者只是这样,因为在已经由 ID 选择的元素上使用类名选择器是没有意义的,而 ID 本身应该是唯一的:

#frm_dash\3A display td {
    padding: 0;
}
Run Code Online (Sandbox Code Playgroud)

作为不同的替代方案,为面板网格提供一个样式类,以便您可以在其他元素上重用相同的外观:

<p:panelGrid id="display" columns="2" styleClass="nopadding"> 
Run Code Online (Sandbox Code Playgroud)

使用(更干净的 CSS 选择器)

<p:panelGrid id="display" columns="2" styleClass="nopadding"> 
Run Code Online (Sandbox Code Playgroud)

也可以看看: