Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# CSS: Styler le dernier élément

Envoyé par : thefab

Date : 25/06/2007 19:21

Est-il possible en CSS de styler le dernier élément d'une série non fixe d'éléments ?

Par exemple:

<vbox>
  <hbox id="1"/>
  <hbox id="2"/>
  <hbox id="3"/>
</vbox>

Je voudrais pouvoir styler de manière différente le dernier élément (id:3) en sachant que j'ajoute et supprime des éléments.

Du genre:

hbox:last
hbox[last]
...

Une idée ?

# Re: CSS: Styler le dernier élément

Envoyé par : Christophe Charron

Date : 25/06/2007 21:09

As-tu essayé d'exploiter moz-last-node ? http://developer.mozilla.org/fr/docs/CSS::-moz-last-node

# Re: CSS: Styler le dernier élément

Envoyé par : thefab

Date : 26/06/2007 01:04

Merci Christophe,

Effectivement c'est ce qu'il me fallait:

label:-moz-last-node
  {
  color: red;
  }

et

<vbox>
  <label value="Test"/>
  <label value="Test"/>
  <label value="Test"/>
</vbox>

style bien uniquement le dernier élément.

# Re: CSS: Styler le dernier élément

Envoyé par : thefab

Date : 26/06/2007 03:03

Ben non finalement ça ne fonctionne pas si bien, je voudrais afficher un bouton +/- selon que ce soit le dernier élément ou non, j'ai donc créer un XBL (en rouge) mais le style -moz-last-node n'est pas mis à jour lorsque des éléments sont ajoutés et donc les éléments précédents ne changent pas de signe. En plus il y a un autre bug étrange: les boutons sont supprimés lorsque je clique dessus ???

# Re: CSS: Styler le dernier élément

Envoyé par : Christophe Charron

Date : 26/06/2007 09:33

a priori, la disparition est liée à la non apparition du bouton minus décrétée dans la feuille de style :

hbox:-moz-last-node button.minus
{
display: none;
}

remplacé par

hbox:-moz-last-node button.minus
{
display: block;
}

ne fait pas dispraître le bouton plus.

Par contre le bouton minus n'apparaît pas du tout chez moi lorsque je clique sur add, ce qui devrait, si j'ai bien compris le code, ajouter une paire de boutons plus et minus

# Re: CSS: Styler le dernier élément

Envoyé par : Christophe Charron

Date : 26/06/2007 09:39

Et puis peut-être essayer avec une déclinaison de last-child mais je n'ai pas trouvé de spécification mozilla ...

# Re: CSS: Styler le dernier élément

Envoyé par : thefab

Date : 26/06/2007 10:10

si j'ai bien compris le code, ajouter une paire de boutons plus et minus

Oui effectivement je voudrais ajouter 2 boutons (+/-) et en afficher qu'un seul: (-) pour les premiers éléments et (+) pour le dernier.

Pour l'instant je fais ça en code mais je voulais le transformer en CSS lorsque j'en ai fais un XBL car je trouve ça (afficher/masquer des éléments) bien plus classe et plus propre en CSS.

En tout cas merci pour la piste car ça m'a fais découvrir plein de -moz-XXX que je ne connaissais pas.

# Re: CSS: Styler le dernier élément

Envoyé par : thefab

Date : 26/06/2007 10:17

J'ai essayé sans plus de succès :last-child mais un doute m'envahit:

hbox:last-child button.plus
  {
  display: none;
  }

Le display: none; s'applique au bouton pas à la boîte, on est bien d'accord ?

# Re: CSS: Styler le dernier élément

Envoyé par : Christophe Charron

Date : 26/06/2007 10:29

le même doute masaï.

Il faudrait styler le contour de la boite pour voir si elle apparaît.

# Re: CSS: Styler le dernier élément

Envoyé par : thefab

Date : 26/06/2007 11:08

Excellente idée de styler avec une bordure (je m'étais contenté d'une couleur de fond)

Le style concerne bien le bouton lui-même, mais la bordure sur la boîte n'est pas complète. Lorsque l'on ajoute des éléments et que l'on clique sur les avants-derniers (mais pas le dernier ???) le bouton disparaît mais pas la boîte. Je suppose que c'est dû au fait que les styles -moz-last-child & Co ne sont pas remis à jour sur les éléments lors d'une suppression/ajout...

Si quelqu'un peut faire un rapport de bug (je ne suis pas super à l'aise avec l'anglais mais je peux faire un exemple plus simple et plus détaillé)

Je vais donc garder la version code pour l'instant à moins qu'il existe une manière de recharger dynamiquement les styles CSS lors d'un évènement de mutation par exemple.

# Re: CSS: Styler le dernier élément

Envoyé par : Christophe Charron

Date : 26/06/2007 11:17

Rien à voir avec la choucroute, mais si tu n'est pas très à laise avec l'anglais, il y a pas mal de traductions existantes sur yoyo designe et entre autre http://www.yoyodesign.org/doc/w3c/dom2-events/events.html#Events-MutationEvent

# Re: CSS: Styler le dernier élément

Envoyé par : thefab

Date : 26/06/2007 11:36

Merci mais ça va j'arrive à lire la doc en anglais, c'était plutôt pour écrire un rapport de bug que je disais ça. Encore merci pour le coup de main.

# Re: CSS: Styler le dernier élément

Envoyé par : Christophe Charron

Date : 26/06/2007 11:36

thefab a écrit:


Le style concerne bien le bouton lui-même, mais la bordure sur la boîte n'est pas complète.

Et si la bordure de droite était en fait justement surchargé par un autre objet, cela expliquerait peut-être que ce ne soit pas considéré comme le dernier noeud ou le dernier fils ??

# Re: CSS: Styler le dernier élément

Envoyé par : thefab

Date : 26/06/2007 13:06

Je ne crois pas, en tout cas rien avec l'inspecteur DOM... Mystère...

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.