Maison  >  Questions et réponses  >  le corps du texte

Bordure inférieure CSS sur la barre de navigation

J'ai une barre de navigation et lorsque je survole un élément de la liste, j'ai ajouté une ligne rouge en bas mais je souhaite déplacer cette ligne rouge sous le titre (par exemple « Services »), une idée de comment y parvenir ?

J'ai ajouté un petit exemple dans le codepen afin que vous puissiez facilement inspecter le code HTML et CSS

header {
  background-color: lightblue;
  padding-top: 1rem;
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-around;
}

header nav {
  min-width: 50%;
}

header nav ul {
  margin: 0;
  height: 100%;
  list-style: none;
  padding-left: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

header li:hover {
  height: 100%;
  border-bottom: 2px solid red;
}
<header>
  <a href="/">
    <p>Whatever logo</p>
  </a>
  <nav>
    <ul>
      <li>About us</li>
      <li>Services</li>
      <li>Pricing</li>
      <li>Blog</li>
    </ul>
  </nav>
  <a href="/">CONTACT</a>
</header>

Lien pour afficher le code

P粉270891688P粉270891688176 Il y a quelques jours355

répondre à tous(2)je répondrai

  • P粉274161593

    P粉2741615932024-04-07 14:15:16

    Je pense simplement donner à tous les éléments de la liste la même hauteur que l'en-tête.

    Comme ça :-

    header {
      background-color: lightblue;
      padding-top: 1rem;
      height: 3rem;
      position: sticky;
      top: 0;
      display: flex;
      align-items: center;
      justify-content: space-around;
    }
    
    header nav {
      min-width: 50%;
      height : 100%;
    }
    
    header nav ul {
      margin: 0;
      height: 100%;
      list-style: none;
      padding-left: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    
    header li{
      height: inherit;
    }
    
    header li:hover {
      border-bottom: 2px solid red;
    }
      
        

    Whatever logo

    CONTACT

    répondre
    0
  • P粉998100648

    P粉9981006482024-04-07 13:14:16

    Vous pouvez fixer la hauteur de l'en-tête et vous pouvez également fixer la hauteur des éléments de la barre de navigation. De plus, vous rencontrez un problème où l'élément li se déplace lorsqu'il est survolé. Vous pouvez également résoudre ce problème en ajoutant toujours une bordure de couleur transparente à l'élément afin que la hauteur totale de l'élément ne change pas au survol.

    C'est un CSS corrigé

    header {
      background-color: lightblue;
      position: sticky;
      display: flex;
      height: 60px;
      align-items: center;
      justify-content: space-around;
    }
    
    header nav {
      min-width: 50%;
    }
    
    header nav ul {
      margin: 0;
      height: 100%;
      list-style: none;
      padding-left: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      height: 60px;
    }
    
    header li {
      display: flex;
      align-items: center;
      border-bottom: 2px solid transparent;
      height: 60px;
    }
    
    header li:hover {
      border-bottom: 2px solid red;
    }

    https://codepen.io/swarajgk/pen/JjZewPo?editors=1100

    répondre
    0
  • Annulerrépondre