CSS - Standard Problem
-
Hallo Leute!
Ich habe ein CSS Problem:
Ich gebe bei den Links eine berite an: width:76px;
diese breite entspricht dem Hintergrund bild, welches dieser link auch bekommt...Wenn ich allerdings einen validen Document Type angebe, ignorieren die Browser (Opera7 und IE6) diese width angabe - und passen das hintergrund bild an die breite des textes an - das schaut natuerlich extrem mies aus.
wenn ich keinen document type angebe, dann wird es so dargstellt wie es sein soll (zumindest im IE)
falsche Darstellung
richtige DarstellungHTML Code und CSS Code sind valid
ich verstehe einfach nicht, wieso das width attribute ignoriert wird...
PS: Mozilla zeigt es immer 'falsch' an - deshalb nehme ich an, dass ich einen fehler im code habe, doch leider finde ich ihn nicht
-
Ich glaube, ich habe dich noch nicht genau verstanden (deine Beispiele funktionieren nicht 404).
Aber ich gehe mal davon aus, dass du versuchst einem inline Element eine fixe Breite zu verpassen.
Dazu steht im Standard (unter width):
Applies to: all elements but non-replaced inline elements, table rows, and row groups
Nun weiß ich nicht genau, was mit "non-replaced inline elements" (nicht ersetzte inline Elemente) gemeint ist. Aber ich denke, damit ist gemeint, dass du es mal mit block versuchen solltest, wenn es irgend geht.
-
ne, das 'seite nicht gefunden' gehört zur seite - ich meine die navigation ganz oben (mit den registerkarten)...
einen 404er solltest du nicht bekommen... bei mir gehts...
"non-replaced inline elements" habe ich auch schon gesucht, aber ich kapier nicht was es ist.
und was sind block elemente?
wenn ich ein <span> herum haue gehts auch nicht.div und p kann ich nicht nehmen, da ich ja keinen line break will...
prinzipiell kann ich jedes element nehmen welches nicht umbricht... hast du eine ahnung wie das gehen koennte?
-
Achso... dachte nur 404, weil da "Seite nicht gefunden" stand.
Also den Unterschied zwischen "non-replaced inline Element" und "replaced inline Element" habe ich noch nicht verstanden. Frage ich mal in einer Newsgroup.
Du musst es irgendwie hinbekommen, dass dein Element ein "replaced inline Element" ist, dann würde auch width funktionieren.
Ansonsten könnte man es auch mit einem block versuchen und den durch floats unsichtbar machen, wenn das geht (geht nicht immer).
-
Also "replaced inline elements" sind z.B. Bilder, Objekte und sowas (was nicht aus Text besteht).
Direkt gibt es wohl keine Lösung für dein Problem. Dies wird wohl erst ab CSS Version 2.1 möglich sein und zwar mit display:inline-block;.
Wenn sich noch was neues ergibt, werde ich es hier posten.
-
aeh... gibts nicht irgendeine moeglichkeit fuer einen workaround?
Was ich will:
Registerkarten zur Navigation.
Jeder Link hat als Hintergrundbild einen 'Reiter' und der Text ist halt der Text auf dem Reiter.
Die Idee dahinter ist, dass man diese reiter auch ohne bilder sieht (bgcolor) bzw. ohne CSS hat man immerhin noch die links...
das hintergrundbild muss ja nicht vom <a> Element gesetzt werden, sondern kann auch zB von einem <span> oder aehnlichem sein (allerdings kein <div> da ich keine linebreaks will (die wuerden ja nicht passen))
ich verstehe einfach nicht, warum ich height angeben kann, aber width nicht. Bei <div> geht es ja auch und div und span unterscheiden sich ja nicht viel...
-
div macht doch nicht zwangsläufig einen line break - oder meinst du ohne CSS?
ansonsten: float bzw. position entsprechend setzen
-
Original erstellt von flenders:
div macht doch nicht zwangsläufig einen line break - oder meinst du ohne CSS?jo, ohne CSS - denn schliesslich soll die seite auch ohne CSS annehmbar sein
-
div und span unterscheiden sich gewaltig. Das eine ist display:inline; und das andere display:block;.
In diesem Fall würde ich zu dem guten alten align="left" greifen (also divs benutzen und zu den CSS floats noch das alte align Attribut, welches auch ohne CSS noch funktionieren sollte).
-
@Loggy:
deinen letzten post verstehe ich nicht ganz... was meinst du genau?
bitte etwas genauer erklaeren