如何从p:panelGrid中的p:row中删除特定(底部)边框?

时间:2014-10-08 03:05:26

标签: css jsf primefaces jsf-2.2

我只需删除<p:panelGrid><p:row>所显示的底部边框。我尝试了以下几点。

CSS:

.panelgrid-cell-noborder.ui-panelgrid .ui-panelgrid-cell {
    border-bottom: none;
}

XHTML:

<p:panelGrid style="width: 100%;">
    <p:row>
        <p:column>a</p:column>
        <p:column>b</p:column>
    </p:row>

    <p:row>
        <p:column styleClass="panelgrid-cell-noborder">c</p:column>
        <p:column styleClass="panelgrid-cell-noborder">d</p:column>
    </p:row>

    <p:row>
        <p:column>e</p:column>
        <p:column>f</p:column>
    </p:row>
</p:panelGrid>

预计中间行的下边框将被删除,但不会删除。

如何在此示例中从中间行删除底部边框?

1 个答案:

答案 0 :(得分:1)

默认情况下,每个单元格都有边框,因此您应该取消下面行的下边框和上边框:

XHTML:

<p:panelGrid style="width: 100%;">
    <p:row>
        <p:column>a</p:column>
        <p:column>b</p:column>
    </p:row>

    <p:row>
        <p:column styleClass="panelgrid-cell-noborder-bottom">c</p:column>
        <p:column styleClass="panelgrid-cell-noborder-bottom">d</p:column>
    </p:row>

    <p:row>
        <p:column styleClass="panelgrid-cell-noborder-top">e</p:column>
        <p:column styleClass="panelgrid-cell-noborder-top">f</p:column>
    </p:row>
</p:panelGrid>

CSS:

.ui-panelgrid .ui-panelgrid-cell.panelgrid-cell-noborder-bottom {
    border-bottom: none;
}
.ui-panelgrid .ui-panelgrid-cell.panelgrid-cell-noborder-top {
    border-top: none;
}

此外,您的CSS不正确,您将ui-panelgrid与单元格样式放在一起,请在我的示例中检查它。

修改

如果你默认使用它们,你可能也必须覆盖主题样式,因为在主题和主要样式中都定义了边框,你可以尝试添加它,例如:

/* cancel border defined in aristo theme */
.ui-panelgrid .ui-widget-content{
    border: none;
}
/* extra: you can add this if you want to recover the same color you cancelled above  */
.ui-panelgrid .ui-panelgrid-cell {
    border: 1px solid #a8a8a8;
}