Lorsque vous travaillez avec JSF, vous pouvez rencontrer une situation où le fichier généré par JSF L'ID de l'élément HTML contient deux points (":"), ce qui pose des problèmes lors de l'utilisation des sélecteurs CSS. Les deux points sont un caractère spécial dans les identifiants CSS, car ils représentent le début d'un sélecteur de pseudo-classe comme :hover, :first-child, etc.
Pour utiliser un JSF -ID généré avec deux points en CSS, vous pouvez y échapper en utilisant l'une des méthodes suivantes :
Remplacez les deux points par "3A" (avec un espace à la fin) :
#phoneFormA phoneTable { background: pink; }
Remplacez les deux points par ":" (pour tous les navigateurs sauf IE6 /7):
#phoneForm\:phoneTable { background: pink; }
En plus d'échapper aux deux points, il existe d'autres approches pour résoudre ce problème :
Envelopper dans un élément HTML simple :
Enveloppez l'élément JSF dans un élément HTML simple et stylisez le wrapper à la place.
Utilisez la classe CSS :
Attribuez une classe CSS à l'élément JSF au lieu d'utiliser un ID.
Modifier le séparateur UINamingContainer (JSF 2.x uniquement) :
Modifiez le caractère séparateur UINamingContainer dans web.xml par un caractère autre que ":".
Désactiver le pré-ajout de l'ID du formulaire (JSF 1.2 uniquement) :
Désactivez le pré-ajout de l'ID du formulaire pour le formulaire spécifique qui génère le élément problématique.
Solution recommandée :
Dans la plupart des cas, encapsuler l'élément JSF dans une classe CSS est la solution la plus appropriée. Il offre une meilleure flexibilité et réutilisabilité, et évite les problèmes potentiels avec certaines approches comme la désactivation du pré-ajout de l'ID du formulaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!