IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Liste à puces avec <ul> et <ol> imbriqués complexes


Sujet :

CSS

  1. #1
    Membre émérite
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Par défaut Liste à puces avec <ul> et <ol> imbriqués complexes
    Bonjour à tous, un participant de mon club m'a soumis une liste complexe avec <ul> et <ol>. Aucun problème sur le code html, mais je n'arrive pas à comprendre le soucis rencontré.
    Ce participant désire avoir le premier niveau en bleu, le 2ème niveau en vert souligné, le 3ème en rouge non souligné comme le dernier en gris.
    La propriété text-decoration:underline; du 2ème niveau se répercute sur les niveaux inférieures, même en forçant une propriété text-decoration:none; sur les 2 derniers niveaux.
    Je ne vois pas où est l'erreur si erreur il y a. Je pense à une question de priorité, mais je ne trouve pas.

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    body {
    	font-family: Arial, Helvetica, sans-serif;
    	font-size: 100%;
    }
    ul li {
    	font-weight: bold;
    	color: #0000FF;
    }
    ol li {
    	font-weight: lighter;
    	text-decoration: underline;
    	color: #00FF00;
    }
    ol li ul li {
    	font-weight: lighter;
    	/*text-decoration: none;*/
    	color: #FF0000;
    }
    ol li ol > li {
    	color: #797979;
    	/*text-decoration: none;*/
    	font-style: italic;
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <ul>
      <li>Les Vins de France
        <ol>
              <li>Alsace
                    <ul>
                      <li>Vins blancs
                            <ol>
                              <li>Riesling</li>
                              <li>...</li>
                            </ol>
                      </li>
                      <li>...</li>
                    </ul>
              </li>
              <li>...</li>
        </ol>
      </li>
      <li>...</li>
    </ul>

    Curieusement, et on peut tester sur: https://codepen.io/JefReb/pen/WZrBdW
    Si je ne mets pas de text-decoration:none; sur les derniers niveaux, ceux-ci sont alors soulignés avec la même couleur du niveau.

    Si je mets de text-decoration:none; sur les derniers niveaux, alors ceux-ci sont soulignés mais avec la même couleur verte du 2ème niveau souligné alors que le 3ème niveau est rouge et le dernier est gris.

    Si quelqu'un a une idée du problème ou quelle solution pour le contourner.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    ce ne sont pas tes listes qui sont en cause mais le fonctionnement intrinsèque de text-decoration qui est en cause.

    Regarde ce qu'en dit MDN text-decoration.
    Citation Envoyé par MDN(fr)
    Ces décorations se propagent sur les différents éléments fils. Cela signifie qu'il n'est pas possible de désactiver la décoration d'un élément descendant pour lequel un ancêtre est décoré.
    Si tu veux différencier les différents niveaux il va te falloir passer par des éléments neutres, <span> par exemple, que tu pourras décorer.

  3. #3
    Membre émérite
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Par défaut
    Mille merci Nosmocking, c'est hélas ce que je supposais et craignais.
    Effectivement, je voulais éviter d'utiliser une autre balise telle que <span>

    Merci pour le lien que j'aurais dû trouver sur text-decoration. mea culpa.
    Je vais clore le topic.
    A tout hasard, si cela intéresse voici la modification:
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    body {
    	font-family: Arial, Helvetica, sans-serif;
    	font-size: 100%;
    }
    ul li {
    	font-weight: bold;
    	color: #0000FF;
    }
    ol li  {
    	font-weight: lighter;
    	color: #00FF00;
    }
    ol li > span  {
    	text-decoration: underline;
    }
    ol li ul li {
    	color: #FF0000;
    }
    ol li ol > li {
    	color: #797979;
    	font-style: italic;
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <ul>
      <li>Les Vins de France
        <ol>
              <li><span>Alsace</span>
                    <ul>
                      <li>Vins blancs
                            <ol>
                              <li>Riesling</li>
                              <li>...</li>
                            </ol>
                      </li>
                      <li>...</li>
                    </ul>
              </li>
              <li>...</li>
        </ol>
      </li>
      <li>...</li>
    </ul>
    Encore merci et je transmets à mon participant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parcourir une liste pucée avec les touches directionnelles
    Par hukiro dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/04/2013, 19h22
  2. [Article] Réalisez vos listes à puces avec des images en CSS
    Par Bovino dans le forum Publications (X)HTML et CSS
    Réponses: 2
    Dernier message: 16/07/2010, 16h00
  3. Débutant : Réalisez vos listes à puces avec des images en CSS
    Par Kerod dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 16/07/2010, 16h00
  4. liste horizontale avec puce
    Par Clorish dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/06/2007, 15h06
  5. [XSL] liste à puces avec FOP ?
    Par Amerok dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 22/12/2005, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo