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 :

Personnaliser une OL en alignant le texte à gauche


Sujet :

CSS

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut Personnaliser une OL en alignant le texte à gauche
    Bonjour,

    Dans mon texte, il y a des parties qui meritent une attention. Pour cela, on utilise des atérix *, **, **

    Plus bas, je dois faire cela
    Nom : Screenshot 2024-03-19 at 22.00.23.png
Affichages : 119
Taille : 28,8 Ko
    Le texte doit être aligné, comme si j'utilisais des ol avec une numérotation.

    Pour utilisé des astérix, je modifie mon CSS ainsi:

    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
    ol.asterix li{
    	color:var(--default) !important;
    	margin-left: 0px !important;
    	padding-left:0px !important;
    	font-weight: normal !important;
    	list-style:none 
    }
    ol.asterix li:before{
     
    }
    ol.asterix li:nth-child(1):before {
       content: "*" 
    }
     
    ol.asterix li:nth-child(2):before {
       content: "**" 
    }
    ol.asterix li:nth-child(3):before {
       content: "***" 
    }
    ol.asterix li:nth-child(4):before {
       content: "****" 
    }

    Mon problème, c'est que cela me donne ceci:
    Nom : Screenshot 2024-03-19 at 22.03.35.png
Affichages : 107
Taille : 14,2 Ko

    J'ai cherché à ajouter de margin/padding left, mais j'ai toujours un décalage.

    J'ai essayé plusieurs trucs sans succès

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ol.asterix li{
    	text-indent: 1em;
    }
     
    ol.asterix li:before{
    	text-indent: 1em;
    }
    ol.asterix li:nth-child(1):before {
       content: "*\00a0\00a0\00a0";
    }

    Y-a-t-il un moyen d'avoir un contrôle sur l'alignement du texte?

    Merci
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    tu n'en es pas loin mais le pseudo-élément before est de type inline par défaut donc il n'occupe que la place nécessaire pour l'affichage de leur contenu. Il faut donc les rendre dimensionnable en les déclarant inline-block.

    Une solution en passant par des classes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ol {
      list-style-type: none;
    }
    li:before {
      content: "\00A0";
      display: inline-block;
      min-width: 5ch;
    }
    li.star-1:before {content: "*";}
    li.star-2:before {content: "**";}
    li.star-3:before {content: "***";}
    li.star-4:before {content: "****";}
    li.star-5:before {content: "*****";}
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ol>
      <li class="star-1">Un</li>
      <li>Deux</li>
      <li>Trois</li>
      <li class="star-4">Quatre</li>
      <li>Cinq</li>
    </ol>

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Hello NoSMoking,

    Merci pour ta réponse.
    mais quel est la différence entre

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    li.star-2:before {content: "**";}
    et
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    li:nth-child(2):before {  content: "**"}
    Ca ne fait pas la même chose, au final?

    Maintenant, j'ai essayé ta proposition (en gardant les nth-child)

    Code : 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
    24
    25
    26
    27
    ol.asterix li{
    	color:var(--default) !important;
    	margin-left: 0px !important;
    	padding-left:0px !important;
    	font-weight: normal !important;
    	list-style:none;
     
    }
    ol.asterix li:before{
    	content: "\00A0";
    	display: inline-block;
    	min-width: 5ch;
     
    }
    ol.asterix li:nth-child(1):before {
       content: "*";
    }
     
    ol.asterix li:nth-child(2):before {
       content: "**" 
    }
    ol.asterix li:nth-child(3):before {
       content: "***" 
    }
    ol.asterix li:nth-child(4):before {
       content: "****" 
    }
    C'est beaucoup mieux
    Ce n'est pas très grave si on 3 li à la place de 4, et que l'espace entre l'asterix et le texte de change pas. Ce qui me gène plus, c'est si le texte du li est long, la ligne deux (et les suivantes) ne sont pas alignées avec la première
    exemple après le premier tableau: http://8a488bgpye.preview.infomaniak...e/ecolage.html
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    En fait je n'avais pas bien saisi ton besoin, je pensais à une notation

    Le CSS qui devrait le faire :
    Code : 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
    ol {
      padding: 0 4em;
      list-style-type: none;
    }
    li {
      position: relative;
      margin-bottom: .5em;
    }
    li:before {
      content: "\00A0";
      position: absolute;
      left: -4em;
    }
    li:nth-child(1):before {content: "*";}
    li:nth-child(2):before {content: "**";}
    li:nth-child(3):before {content: "***";}
    li:nth-child(4):before {content: "****";}
    li:nth-child(5):before {content: "*****";}

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Super, merci
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

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

Discussions similaires

  1. Aligner un texte à gauche et à droite d'une image
    Par philippef dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 20/08/2020, 16h11
  2. Réponses: 10
    Dernier message: 23/12/2010, 10h27
  3. Aligner un texte en bas-gauche et Centrer une image
    Par kurkaine dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 24/03/2007, 12h06
  4. Aligner du texte à gauche et à droite sur une même ligne ?
    Par pontus21 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/04/2005, 11h25

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