Ils n'existent pas, mais ne serait-ce pas si cool? Je ne sais pas à quel point il serait difficile de mettre en œuvre le regex, ni comment coûter cher à analyser, mais ce ne serait pas simplement la bombe?
Disons que j'ai un tas d'éléments, tous avec des noms de classe similaires, qui ont un style partagé mais que j'ai également besoin de règles individuelles, par exemple:
<ul > <li ><a href="/">Home</a></li> <li ><a href="/products/">Products</a></li> <li ><a href="/about/">About</a></li> </ul>
Je pouvais effectuer un remplacement d'image sur ces listes pour créer une barre de navigation graphique, avec des règles comme celle-ci:
#menu li { background:none #fff no-repeat; } #menu li#menu-home { background-image:url("home.png"); } #menu li#menu-products { background-image:url("products.png"); } #menu li#menu-about { background-image:url("about.png"); }
pas trop mal, mais à mesure que la structure augmente en taille, le CSS se développe également. Si la structure devenait très grande, le CSS deviendrait également verbeux; Sans parler du fait que je dois le modifier manuellement chaque fois qu'un nouvel élément est ajouté.
Mais et si je pouvais faire ceci:
#menu li[id%="/^menu-([a-z]+)$/"] { background-image:url(".png"); }
Maintenant, mes styles de menu sont infiniment extensibles - je peux ajouter n'importe quel nombre de nouveaux éléments, sans jamais avoir à toucher le CSS !
juste une pensée…
Le sélecteur d'attribut de correspondance regex est un outil puissant de CSS qui vous permet de sélectionner des éléments en fonction de leurs valeurs d'attribut. Il utilise des expressions régulières, une séquence de caractères qui forme un modèle de recherche, pour correspondre aux valeurs d'attribut. Cette fonctionnalité est particulièrement utile lorsque vous souhaitez styliser des éléments avec des attributs similaires d'une certaine manière. Par exemple, vous pouvez sélectionner tous les éléments d'entrée avec un attribut de type qui commence par «Texte» et leur appliquer un style spécifique.
Pour utiliser Regex Assorting Seclecteurs Attribut dans CSS, vous avez besoin d'utiliser la syntax de Selector Attribute, quel est un nom d'élément suivi par un nom d'attribut dans les fraises d'attribut. Le nom d'attribut est suivi d'un opérateur de match, qui peut être «=», «~ =», «| =», «^ =», «$ =» ou «* =», puis la valeur d'attribut en devis. Par exemple, la saisie [Type ^ = "Text"] sélectionnera tous les éléments d'entrée avec un attribut de type qui commence par «Texte».
Oui, vous pouvez utiliser des sélecteurs d'attribut correspondants regex avec n'importe quel attribut. Cela inclut à la fois des attributs standard comme «classe», «id», «type», «href», etc. et des attributs personnalisés. Cependant, gardez à l'esprit que tous les attributs ne sont pas pris en charge dans tous les navigateurs, donc c'est toujours une bonne idée de vérifier la compatibilité des navigateurs avant d'utiliser un attribut spécifique.
Il y a six opérateurs de match dans les sélecteurs d'attribut de correspondance regex. L'opérateur «=» correspond exactement, l'opérateur «~ =» correspond à n'importe quelle valeur séparée dans l'espace, l'opérateur «| =» correspond à toute valeur séparée par un tableau de bord ou à la valeur exacte, l'opérateur «^ =» correspond au début de la valeur, l'opérateur «$ =» correspond à la fin de la valeur, et l'opérateur «* =» correspond à toute partie de la valeur. JavaScript?
Les sélecteurs d'attribut d'attribut correspondant à regex sont-ils sensibles à la casse? Cependant, vous pouvez les rendre insensibles à un cas en ajoutant un «i» après la valeur d'attribut. Par exemple, la saisie [Type ^ = "Text" i] sélectionnera tous les éléments d'entrée avec un attribut de type qui commence par "Texte", quel que soit le cas.
Oui, vous pouvez utiliser plusieurs sélecteurs d'attribut de correspondance multiple regex en une seule règle en les séparant avec des comasions. Par exemple, la saisie [Type ^ = "Text"], entrée [Type ^ = "Mot de passe"] sélectionnera tous les éléments d'entrée avec un attribut de type qui commence par "Texte" ou "Mot de passe".
Que se passe-t-il si aucun éléments ne correspond au sélecteur d'attribut de regex correspondant?
Y a-t-il des considérations de performances lorsque vous utilisez des sélecteurs d'attribut de correspondance regex?
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!