• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Wieso verschiebt sich die Überschrift?

Nikurasukun

Neues Mitglied
Ich hab hier das Grundgerüst für eine Website gebaut und die Überschrift verschiebt sich hier sehr stark und die Menüpunkte des Dropdown Menüs verschieben sich leicht, wenn der Hover Effekt eintritt. Ich weiß nicht woran, das liegt, könnt ihr mir helfen?5125
Und wenn wir schon dabei sind, woher kommt der Abstand des Dropdown Menüs zu dem was beim Hover erscheint?
Der Quellcode ist hier:
https://hastebin.com/acabufuxin.css
https://hastebin.com/bavesivize.xml
 
Werbung:
Tatsache, das wars, danke und woher kommt der Abstand hier, der war am Anfang nicht da und als ich irgendwas geändert hab (ich weiß leider nicht mehr was) war der plötzlich da.
5126
 
Werbung:
Ich seh da keinen Abstand... also ich sehe das auf deinem Screenshot, aber wenn ich den Code bei mir laufen lassen, dann ist da nichts!
5127
Leere mal deine Cache und aktualisiere die Seite.
 
Du verwendest CSS-Anweisungen wie float und position ohne dich über ihre Funktion und ihre Auswirkungen informiert zu haben. Die Browser richten sich jedoch nach den HTML- und CSS-Regeln.

In deinem Beispiel hast du den Dokumentenfluß nicht beachtet. Durch deine float- und position-Angaben werden die betroffenen Container aus dem Dokumentenfluß genommen. Dadurch ist der nav-Container leer und wird nicht angezeigt.

Durch die height-Angabe machst du ihn zwar trotzdem optisch sichtbar, aber nur für Menschen. Die anderen Elemente reagieren jedoch nicht auf ihn. Deshalb ist in deinem Fall die height-Angabe nicht nur überflüssig sondern sogar schädlich. Dadurch führst du dich nämlich selbst auf eine falsche Spur. Durch die Sichtbarkeit gehst du davon aus dass er eine Größe hat. Für die anderen Container ist der nav-Container aber nicht vorhanden.

In den Dokumentenfluß solltest du nur eingreifen wenn du dir vorher über die Auswirkungen im klaren bist.

Ich versuche das mal zu verdeutlichen. Gib in der CSS-Datei mal

Code:
nav ul li

eine Hintergrundfarbe, zum Beispiel yellow. Dann kannst du die Größe der li-Elemente sehen. Danach richtet sich das Aufklappmenü.

Das die li-Elemente vermeintlich unten über den nav-Container mit dem weißen Hintergrund hinausragen ist nur eine optische Darstellung, hat durch deine float-, position- und height-Angaben aber mit dem Verhalten im Verhältnis zum nav-Container nichts zu tun.

Es ist ein typischer Anfängerfehler nach der Darstellung der Browser zu gehen, ohne im Vorfeld zu überlegen und zu lernen, warum die Darstellung so erfolgt. height-Angaben sind zum Beispiel fast immer überflüssig. Sie schaffen oder kaschieren Probleme, häufig zudem an anderer Stelle, lösen sie aber nicht.
 
Zuletzt bearbeitet:
Werbung:
Deine Hyperlink Elemente (nav ul li a) haben laut Anzeige im 'Inspektor' eine Höhe von 54px...
5128
Reduziere hier mal das Padding
CSS:
nav ul li a {
    padding: 14px 14px;
}
 
Du verwendest CSS-Anweisungen wie float und position ohne dich über ihre Funktion und ihre Auswirkungen informiert zu haben. Die Browser richten sich jedoch nach den HTML- und CSS-Regeln.

In deinem Beispiel hast du den Dokumentenfluß nicht beachtet. Durch deine float- und position-Angaben werden die betroffenen Container aus dem Dokumentenfluß genommen. Dadurch ist der nav-Container leer und wird nicht angezeigt.

Durch die height-Angabe machst du ihn zwar trotzdem optisch sichtbar, aber nur für Menschen. Die anderen Elemente reagieren jedoch nicht auf ihn. Deshalb ist in deinem Fall die height-Angabe nicht nur überflüssig sondern sogar schädlich. Dadurch führst du dich nämlich selbst auf eine falsche Spur. Durch die Sichtbarkeit gehst du davon aus dass er eine Größe hat. Für die anderen Container ist der nav-Container aber nicht vorhanden.

In den Dokumentenfluß solltest du nur eingreifen wenn du dir vorher über die Auswirkungen im klaren bist.
Ignoriert? Zur Kenntnis genommen? Daraus gelernt?
 
Werbung:
Du kannst ja mal der Textbox einen Inhalt geben, zum Beispiel

Code:
   <div id="textbox">
      <h2>textbox</h2>
   </div>

und der CSS-Anweisung dazu eine andere Hintergrundfarbe als weiß geben, zum Beispiel

Code:
   #textbox {
      background-color: yellow;
      width: 75%;
      margin: 40px auto;
      border-radius: 4px;
      box-shadow: 5px 5px 2px rgba(0, 0, 0, .5);
   }

Danach verringerst du die Fensterbreite deines Browsers und schaust wie sich die sichtbaren Elemente verhalten. So kannst du sehen wie die Seite auf Tablets und Smartphones dargestellt wird. Wenn das in deinem Sinn ist, ist alles in Ordnung. Wenn nicht hast du ein richtiges Problem. Dann helfen einzelne CSS-Änderungen nämlich nicht mehr, die nur an einzelnen Symptomen herumdoktoren. Aber nicht das eigentliche Problem beheben.
 
Zurück
Oben