web-dev-qa-db-fra.com

Sélecteur pour une balise directement suivie d'une autre balise

Cela sélectionne tous les <B> balises directement précédé par <A> Mots clés:

A+B {
    /* styling */
}

Quel est le sélecteur pour tous <A> balises directement suivies par <B> Mots clés?

Voici un exemple de code HTML adapté à ma question:

<a>some text</a>
<b>some text</b>
77
Mostafa Farghaly

Vous ne pouvez pas en CSS.

Edit: Pour être un peu plus utile, si vous utilisez par exemple jQuery (une bibliothèque JavaScript), vous pouvez utiliser .prev() .

26
jeroen

Voulez-vous dire le style A étant donné qu'il a un élément B directement à l'intérieur ou suivi? Comme ça:

<A>
    <B>
    </B>
</A>

// OR

<A>
</A>
<B>
</B>

Vous ne pouvez pas faire une telle chose en CSS (pour l'instant). Eric Meyer déclare que ce type de sélecteur a été discuté à plusieurs reprises sur la liste de diffusion CSS et n'est pas faisable. Dave Hyatt, l'un des principaux développeurs de WebKit, commente pourquoi cela ne peut pas être fait.

Découvrez: le blog de Shaun Inman et le commentaire d'Eric Meyer .
David Hyatt pèse , aussi.

52
Nick Presta

Vous pouvez UNIQUEMENT faire l'inverse: cela sélectionne toutes les balises directement précédées de balises.

Ceci est logiquement équivalent à votre demande.

Je l'utilise souvent pour styliser une rangée de nombreuses cases à cocher avec des étiquettes

CSS:

label+input {
    margin-left: 4px;
}

DOM:

<input id="a" name="a" type="checkbox"/><label for="a">...</label>
<input id="b" name="b" type="checkbox"/><label for="b">...</label>
<input id="c" name="c" type="checkbox"/><label for="c">...</label>
12
Marco Marsala