Frage Nav Website HTML, CSS?

4 Antworten

Hi Trismegisto,

eine Lösung wäre es das a-Element was ein inline-Element ist zu einem block-Elementen umzuwandeln und entweder mit line-height oder mit padding zu arbeiten.

Hier ein passendes Beispiel in CSS:

nav ul li { margin: 0 15px; height: 60px; display: flex; align-items: center; }
nav ul li a { text-decoration: none; color: inherit; font-weight: bold; display: block; padding: 20px 15px; height: 100%; line-height: 60px; }
nav ul li:hover { background-color: brown; }

Viel Erfolg

Woher ich das weiß:Berufserfahrung – Ich bin gelernter Mediengestalter Digital und Print(IHK)

Das Problem ist, dass dein <a>-Element standardmäßig nur so groß ist wie der Text darin. Du hast zwar versucht, height: 60px zu setzen, aber <a> ist ein Inline-Element, das sich nicht an height hä

lt.

Lösung:

Setze display: block; für die <a>-Elemente, damit sie die volle Höhe des <li>-Elements einnehmen:

nav ul li {

  margin: 0 15px;

  padding: 10px 0; /* Fügt oben und unten Platz hinzu */

}

nav ul li a {

  display: block; /* Macht das <a>-Element zu einem Block */

  text-decoration: none;

  color: inherit;

  font-weight: bold;

  padding: 20px; /* Erhöht die Fläche des Links */

}

Jetzt wird das <a>-Element größer, und du kannst es auch aus der Nähe besser hovern. Falls du möchtest, dass die gesamte <li>-Fläche auf Hover reagiert, kannst du den Hover-Effekt direkt auf <li> setzen:

nav ul li:hover {

  background-color: brown;

}

Falls du noch eine größere Hover-Fläche willst, kannst du zusätzlich padding auf <li> setzen.

Woher ich das weiß:eigene Erfahrung

In deinem Code (bitte formatiere ihn auch als Quelltext) setzt du nur für nav eine height von 60px, jedoch nicht für nav li a.

Ich würde hier aber statt height lieber padding nehmen und nav li a, bspw. so:

nav li a {
  padding: 15px 10px;
}
Woher ich das weiß:Berufserfahrung – Entwickle Webseiten seit über 25 Jahren.

Trismegisto 
Beitragsersteller
 03.02.2025, 00:02

Danke, aber wie bekomme ich die genaue Höhe der Nav und das die Box genau bis dorthin geht, wo sich die "li" Elemente treffen?

Babelfish  03.02.2025, 09:06
@Trismegisto

Erstens kannst du ausprobieren und die errechnete Höhe in den Developer-Tools deines Webbrowsers sehen. Zweitens vergrößert der Link automatisch das Listenelement und für li solltest du deshalb auch gar keine Größe angeben.

Folgende zwei Punkte solltest du anpassen:

nav ul li a {
  display: block; // neu
  padding: 20px 15px;  // neu
  text-decoration: none;
  color: inherit;
  font-weight: bold;
}

Und:

nav ul li {
  margin: 0px; // geändert
}
  
  

Dann sollte das Ergebnis so aussehen:

Bild zum Beitrag

 - (Webseite, HTML, CSS)

Trismegisto 
Beitragsersteller
 03.02.2025, 03:38
cool, danke dir, habs auch geschafft, aber anders:
text-decoration: none;
color: inherit;
font-weight: bold;
padding: 0 15px;
width: 100%;
height: 60px;
align-items: center;
display: flex;
}

Denke das ist auch besser weil wenn du die schrift änderst, kommt wieder alles durcheinander.