Listenpunkte zerbrechen mir den Kopf
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abstand
bekommen
code
cursor
frage
funktion
geschilderten problem
header
kopfzerbrechen
list
minimum
pointer
position
preis
problem
text
url
vorbeugen
werten benennen
wuchtiger holzhammer
-
Ich habe folgendes Problem, bzw folgenden Code der mir ein kleines Problem bereitet:
HTML:
<div class="header"> <a href="platzhalter"><div id="logo"></div></a> <div id="Navi"> <ul> <li><a href="platzhalter/">Home</a></li> <li><a href="platzhalter/">Qualität</a></li> <li><a href="platzhalter/">Preise</a></li> <li><a href="platzhalter/">Fragen</a></li> </ul> </div> </div>
CSS:
.header { position: relative; width: 900px; height: 100px; margin: auto; font-size: 17px; text-decoration: none; font-weight: bold; z-index: 1; } .header #Navi li { position: relative; left: 350px; list-style: none; float: left; padding: 40px; bottom: 60px; } .header #Navi li a:hover { color: #FFFFFF; cursor: pointer; padding: 5px 15px 4px 13px; background-color: #9BB70D; position: relative; right: 13px; }
Nun sieht mein Problem wie folgt aus: Da die einzelnen Listenpunkte eine hover-Funktion spendiert bekommen haben die via padding in ihrer Größe definiert wird, verschieben sich alle nachstehenden Listenpunkte um 13px.
Zuvor hatte ich es mit <div> Containern versucht die allerdings durch den IE in Treppenform wiedergegeben worden sind. Daher versuchte ich nun eine deutlich code-sparendere Variante die mir nun aber eben dem geschilderten Problem nach kopfzerbrechen bereitet, da ich nicht genau weiss wie ich am besten und vorallem kompatibelsten die Navi platziere.
Würde mich freuen wenn mir jemand die zündende Idee aufzeigen kann, die mir weiterhilft!
*EDIT
Ich habe das Problem nun doch noch selbst gelöst bekommen! Für diejenigen die es interessiert:
<div class="header"> <a href="platzhalter"><div id="logo"></div></a> <div id="Navi"> <ul> <li><a href="platzhalter"> Home </a></li> <li><a href="platzhalter"> Qualität </a></li> <li><a href="platzhalter"> Preise </a></li> <li><a href="platzhalter"> Fragen </a></li> </ul> </div> </div>
.header #Navi li { position: relative; left: 350px; list-style: none; float: left; padding: 30px; bottom: 60px; } .header #Navi li a:hover { color: #FFFFFF; cursor: pointer; padding: 5px 0px 4px 0px; background-color: #9BB70D; position: relative; right: 0px; }
Zwar ein wuchtiger Holzhammer mit dem man dieses Problem gelöst hat, aber es funktioniert! ;)
Beitrag zuletzt geändert: 30.6.2011 11:54:18 von moneytakers -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du könntest deinem CSS einfach noch ein ".header #Navi li a" hinzufügen und dieses mit den gleichen padding-Werten benennen wie den hover Effekt. Sähe dann so aus (Code aufs Minimum reduziert - im FF sieht es so gut aus):
.header #Navi li a { padding: 5px 15px 4px 13px; } .header #Navi li a:hover { background-color: #9BB70D; color: #FFFFFF; padding: 5px 15px 4px 13px; }
-
tatsächlich, besten Dank! Aber ich verstehe noch nicht ganz wieso es so funktioniert. Ich gebe den Listenpunkten ja die attribute, die theoretisch durch die Hover Funktion nochmal draus addiert werden müssten. Falls du verstehst was ich meine.
-
"padding" gibt den Innenabstand zwischen dem Text und (einem per default unsichtbaren) border - siehe Box-modell. Der Abstand zwischen den einzelnen Links orientiert sich aber eben nicht am Text, sondern an den bordern. Wenn du den Abstand zwischen border und Text mit padding vergrößerst muss der Rest rundherum auf die Seite rücken (so wie ies bei dir der Fall war). Dem kannst du vorbeugen, indem du dem "stehenden" Text eben schon vorher den selben Abstand zwischen border und Text vorgibst.
Keine Ahnung ob das jetzt irgendwie verständlich ausgedrückt ist... -
Ja, ich denke ich habe es im Ansatz verstanden. Besten Dank für die Hilfe!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage