Magazine Gadgets

Comment positionner un pseudo-élément pour souligner du texte – HTML & CSS – SitePoint Forums

Publié le 27 mai 2022 par Mycamer

Salut,

Je travaille actuellement sur mon site personnel pour pratiquer mon codage et j’ai récemment découvert le potentiel des pseudo éléments pour le design.

Je voudrais utiliser un pseudo-élément pour souligner un texte.

J’ai réussi à concevoir un pseudo-élément pour souligner mon titre mais j’ai quelques problèmes pour le positionner correctement sous mon texte.

<div class="Resume">

  <div class="Education">

    <h2>Education</h2>

    <ul>
      <li>Education #1</li>
      <li>Education #2</li>
      <li>Education #3</li>
    </ul>
  </div>

  <div class="Experience">

    <h2>Experience</h2>

    <ul>
      <li>Experience #1</li>
      <li>Experience #2</li>
      <li>Experience #3</li>
    </ul>
  </div>
</div>
.Resume {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    text-align: center;
}

.Resume h2 {
    font-size: 40px;
    padding: 50px;
    letter-spacing: 4px;
    font-weight: bold;
    text-transform: uppercase;    
}

/* Pseudo element line */
/* Reaadpt line under education experience */
.Resume h2::after {
    content: '';
    display: block;
    position: absolute;
    background-color: #7D7465;
    height: 10px;
    width: 20%;
}

En ligne CodePen Code

J’ai essayé d’utiliser gauche-droite / haut-bas mais cela ne fonctionne pas et ne peut pas le positionner correctement sous mon texte.
Merci d’avance pour votre aide.


PaulOB

27 mai 2022, 11h05


#2

J’ai essayé d’utiliser gauche-droite / haut-bas mais ça ne marche pas

Si vous faites la largeur du contenu h2 en utilisant un rétrécissement pour s’adapter au type d’affichage tel que display:inline-flex alors vous pouvez utiliser gauche et droite sur le pseudo élément pour correspondre exactement à la largeur du texte (plus son rembourrage) sans utiliser de magie chiffre comme 20 %.

Modifiez vos 2 règles comme suit.

.Resume h2 {
  font-size: 40px;
  padding: 50px;
  letter-spacing: 4px;
  font-weight: bold;
  text-transform: uppercase;
  display: inline-flex; /* shrink to fit*/
  margin: 0;
  position:relative;/* stacking context for pseudo element */
}

/* Pseudo element line */
/* Reaadpt line under education experience */
.Resume h2::after {
  content: "";
  /*display: block; not needed when position:absolute used in this case*/
  position: absolute;
  background-color: #7d7465;
  height: 10px;
  bottom:20px;
  left: 0;/* match width of text and padding*/
  right: 0;/* match width of text and padding*/
  /* width: 20%;*/
}

Capture d'écran 2022-05-27 à 12.05.59

Si vous voulez la ligne uniquement sous le texte, utilisez left:50px et right:50px pour correspondre à votre rembourrage (ou bien supprimez le rembourrage gauche et droit).

Capture d'écran 2022-05-27 au 12.10.19

Pour éviter les erreurs, je vous suggère d’utiliser des minuscules dans vos règles plutôt que de dire .Resume utilisez .resume à la place. Cela rend juste la vie plus facile :slight_smile:

Il existe d’autres façons d’obtenir le soulignement, mais je suppose que vous vous entraîniez de toute façon avec le pseudo-élément :slight_smile:

— to www.sitepoint.com


Retour à La Une de Logo Paperblog

A propos de l’auteur


Mycamer Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazines