28172 sujets

CSS et mise en forme, CSS3

Hello,

Est-ce qu'il existe à votre connaissance un moyen en CSS pur de selectionner un élement en fonction de ce qu'il contient ou non comme child ?


<ul>
	<li>
		<a>Lien simple</a>
	</li>
	<!-- C'est ce <li> suivant que je cherche à cibler, car il contient un <ul> -->
	<li>
		<a>Lien complexe</a>
		<ul>
			<li><a>Sous-lien 1</a></li>
			<li><a>Sous-lien 2</a></li>
		</ul>
	</li>
</ul>

Dans l'exemple précédent, est-il possible de sélectionner le second <li> (avec Lien complexe) ?
Je sais bien sélectionner le sous <ul> (ul li a + ul) mais je ne parviens pas à sélectionner le <li> parent, ni même le <a>.

Le menu en question étant généré coté serveur, j'ai ajouté une classe sur les <li> contenant des sous-menus, mais je me demandais s'il y avait moyen de le faire en CSS pur (don sans passer par javascript).
Modifié par Tymlis (07 Apr 2010 - 18:10)
Administrateur
Bonjour,

non pas moyen en CSS pur de sélectionner un élément en fonction de ce qu'il contient ni de ce qui va venir après.
En fonction des parents et les éléments précédents oui.

En XPath tu peux mais ça a pas trop de rapport avec le web côté client Smiley smile et en jQuery aussi (et sûrement d'autres framework JS avec les mêmes sélecteurs de qualité)
Merci des réponses, c'est bien ce qu'il me semblait.
J'imagine que c'est l'un de ces sélecteurs ascendants qui sont demandés de temps en temps et dont les développeurs de browsers expliquent que c'est bien trop compliqué à mettre en place.
Modifié par Tymlis (08 Apr 2010 - 12:37)