61 votes

Comment supprimer la bordure de certains PrimeFaces p:panelGrid ?

J'ai des difficultés à supprimer la bordure d'un PrimeFaces spécifique. <p:panelGrid> .

<p:panelGrid styleClass="companyHeaderGrid">
    <p:row>
        <p:column>
            Some tags
        </p:column>
        <p:column>
            Some tags
        </p:column>
    </p:row>
</p:panelGrid>

J'ai pu supprimer la bordure des cellules avec :

.companyHeaderGrid td {
    border: none;
}

Mais

.companyHeaderGrid {
    border: none;
}

Ne fonctionne pas.

1 votes

La réponse de Balus est dépassée. Voyez celle-ci : stackoverflow.com/a/41585497/1599699

0 votes

@Andrew Je ne pense pas que ce soit une bonne réponse.

0 votes

@PaulWasilewski Je pense que oui.

103voto

BalusC Points 498232

La bordure a été fixée sur le produit tr et td et non sur les éléments table . Donc, cela devrait faire l'affaire :

.companyHeaderGrid.ui-panelgrid>*>tr,
.companyHeaderGrid.ui-panelgrid .ui-panelgrid-cell {
    border: none;
}

Comment je l'ai trouvé ? Il suffit de vérifier la sortie HTML générée et toutes les règles de style CSS dans la boîte à outils du développeur Web de Chrome (clic droit, Inspecter l'élément ou appuyez sur F12). Firebug et IE9 disposent d'un ensemble d'outils similaires. En ce qui concerne la confusion, gardez à l'esprit que JSF/Facelets génère en fin de compte du HTML et que les CSS ne s'appliquent qu'au balisage HTML, et non au code source JSF. Pour appliquer/régler les CSS, vous devez donc plutôt regarder du côté du client (navigateur Web).

enter image description here

Voir aussi :


Si vous êtes toujours sur PrimeFaces 4 ou plus ancien, utilisez ci-dessous à la place :

.companyHeaderGrid.ui-panelgrid>*>tr,
.companyHeaderGrid.ui-panelgrid>*>tr>td {
    border: none;
}

1 votes

vous pouvez ajouter ce qui suit pour remplacer les styles de primefaces : .companyHeaderGrid tr, .companyHeaderGrid td { border : none !important ; }

4 votes

@JohnB : le !important n'est pas nécessaire si l'ordre de chargement de votre CSS est correct : stackoverflow.com/questions/8768317/ Voir également la réponse d'Andi ci-dessous et mon commentaire à ce sujet. N'utilisez pas de solutions de contournement s'il existe des solutions. Utilisez !important uniquement en tant que véritable solution (c'est-à-dire lorsque vous avez besoin de passer outre un code dur style="..." par une déclaration de sélecteur CSS).

0 votes

Merci, ça marche pour moi, mais pour enlever toutes les bordures je dois modifier en ' .companyHeaderGrid.ui-panelgrid, .companyHeaderGrid.ui-panelgrid>*>tr, .companyHeaderGrid.ui-panelgrid>*tr>td { border : none !important } '

21voto

Mohammed Pasha Points 111

Cela a marché pour moi :

.ui-panelgrid td, .ui-panelgrid tr
{
    border-style: none !important
}

13voto

Andi Points 195

Si la réponse de BalusC ne fonctionne pas, essayez ceci :

.companyHeaderGrid td {
     border-style: hidden !important;
}

7 votes

Ceci n'est applicable que si votre propre CSS n'a pas été chargé après celui de PrimeFaces, ce qui est en effet une erreur courante de débutant. Le site !important La déclaration est alors en fait une solution de contournement, et non une solution. Voir aussi pour plus de détails stackoverflow.com/questions/8768317/

5voto

Ajeesh Points 670

Si vous trouvez une ligne entre les colonnes, utilisez le code ci-dessous,

.panelNoBorder, .panelNoBorder tr, .panelNoBorder td{
border: hidden;
border-color: white;
}

J'ai vérifié cela avec Primefaces 5.1

<h:head>
     <title>Login Page</title>    
     <h:outputStylesheet library="css" name="common.css"/>
</h:head> 

<p:panelGrid id="loginPanel" columns="3" styleClass="panelNoBorder">
<p:outputLabel value="Username"/> <p:inputText id="loginTextUsername"/>
<p:outputLabel value="Password"/> <p:password id="loginPassword"/>
<p:commandButton id="loginButtonLogin" value="Login"/> <p:commandButton id="loginButtonClear" value="Clear"/>
</p:panelGrid>

0 votes

Mon Panelgrid se trouve à l'intérieur d'un DataTable et est utilisé pour un élément selectOneRadio avec layout="custom". Cette réponse a donc fonctionné pour moi. Merci beaucoup :)

0voto

Il suffit d'ajouter ces lignes dans votre css personnalisé mycss.css

table tbody .ui-widget-content {
    background: none repeat scroll 0 0 #FFFFFF;
    border: 0 solid #FFFFFF;
    color: #333333;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X