J'ai des difficultés à supprimer une bordure d'un <p:panelGrid>
PrimeFaces spécifique.
<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 les bordures des cellules avec:
.companyHeaderGrid td {
border: none;
}
Mais
.companyHeaderGrid {
border: none;
}
Ne marche pas.
La bordure est définie sur les éléments tr
et td
générés et non sur les table
. Donc, cela devrait faire:
.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 le jeu d'outils WebDeveloper de Chrome (clic droit, Inspect Element ou appuyez sur F12). Firebug et IE9 ont un ensemble d'outils similaires. En ce qui concerne la confusion, gardez simplement à l'esprit que JSF/Facelets génère finalement du HTML et que CSS ne s'applique que sur le balisage HTML, pas sur le code source JSF. Donc, pour appliquer/affiner le CSS, vous devez plutôt regarder dans le côté client (navigateur Web).
Si vous êtes toujours sur PrimeFaces 4 ou une version antérieure, utilisez ci-dessous:
.companyHeaderGrid.ui-panelgrid>*>tr,
.companyHeaderGrid.ui-panelgrid>*>tr>td {
border: none;
}
J'utilise Primefaces 6.0 et afin de supprimer les bordures de ma grille de panneaux, j'utilise cette classe de style "ui-noborder" comme suit:
<p:panelGrid columns="3" styleClass="ui-noborder">
<!--panel grid contents -->
</p:panelGrid>
Il utilise un fichier css nommé "composants" dans la librairie primefaces
Cela a fonctionné pour moi:
. ui-panelgrid td, .ui-panelgrid tr { style de bordure: aucun! important }
Si la réponse de BalusC ne fonctionne pas, essayez ceci:
.companyHeaderGrid td {
border-style: hidden !important;
}
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>
De nos jours, Primefaces 5.x possède un attribut dans panelGrid nommé "columnClasses".
.no-border {
border-style: hidden !important ; /* or none */
} Ainsi, pour un panelGrid avec 2 colonnes, répétez deux fois la classe css.
<p:panelGrid columns="2" columnClasses="no-border, no-border">
Pour d'autres éléments, le "! Important" moche n'est pas nécessaire, mais pour la frontière, cela ne me pose aucun problème.
Essayer
<p:panelGrid styleClass="ui-noborder">
Pour que les thèmes traditionnels ainsi que tous les thèmes modernes n'aient pas de frontière, appliquez ce qui suit:
<!--No Border on PanelGrid-->
<h:outputStylesheet>
.ui-panelgrid, .ui-panelgrid td, .ui-panelgrid tr, .ui-panelgrid tbody tr td
{
border: none !important;
border-style: none !important;
border-width: 0px !important;
}
</h:outputStylesheet>
Si vous voulez juste quelque chose de plus simple, vous pouvez simplement changer:
<p:panelGrid >
</p:panelGrid>
à:
<h:panelGrid border="0">
</h:panelGrid>
Ça a bien fonctionné pour moi
Comme mentionné par BalusC, PrimeFaces définit la frontière sur les éléments tr
et td
générés, et non sur table
. Cependant, lors de l’essai avec PrimeFaces version 5, il semble qu’il existe une correspondance plus spécifique dans le code CSS PrimeFaces .ui-panelgrid .ui-panelgrid-cell > solid
qui entraîne toujours l’affichage de bordures noires lors de l’appylation du style suggéré.
Essayez d’utiliser le style suivant pour remplacer celui de Primefaces sans utiliser la déclaration !important
:
.companyHeaderGrid tr, .companyHeaderGrid td.ui-panelgrid-cell {
border: none;
}
Comme mentionné, assurez-vous que votre CSS est chargé après celui de PrimeFaces .
J'ai placé le panelgrid dans datatable
.ui-datatable-scrollable-body .myStyleClass tbody td{border:none;}
for
<h:panelGrid styleClass="myStyleClass" >...</h:panelGrid>
pour moi seul le code suivant fonctionne
.noBorder tr {
border-width: 0 ;
}
.ui-panelgrid td{
border-width: 0
}
<p:panelGrid id="userFormFields" columns="2" styleClass="noBorder" >
</p:panelGrid>
Il suffit d'ajouter ces lignes sur votre css personnalisé. Mycss.css
table tbody .ui-widget-content {
background: none repeat scroll 0 0 #FFFFFF;
border: 0 solid #FFFFFF;
color: #333333;
}