![]() |
Jag har en meny uppbyggd som en lista, typ:
Kod:
<div id=menu> Kod:
div#menu { margin: 10px auto; padding-right: 100px; width: 690px; border: 1px solid blue; } I Firefox ser det ur som förväntat: http://natbyggarna.se/test-iefloat-ff.png Men i MSIE (både 6 & 7) verkar inte varken padding-right för div#menu eller margin-right för ul respekteras: http://natbyggarna.se/test-iefloat-ie.png Jag får inte ordning på detta. Har surfat och hittat tipsen att wrappa med en extra div eller att li måste vara display:inline, men inget av detta har hjälpt. En testsida finns här: natbyggarna.se/test-iefloat.php och där jag använder det skarpt är: concreta.se Några idéer? |
Efter idogt letande och forumande har jag nu lösningen på detta. Svaret finns i fenomenet hasLayout, en egenskap i MSIE som jag tidigare inte ägnat så mycket uppmärksamhet, men som uppenbarligen gäckat webbutvecklare i många år. Jag löste det med en variant av the Holly Hack, dvs jag lade till följande CSS:
Kod:
ul { height: 1%; } Ett tack till Centauri på webdeveloper.com, som löste mitt problem. För den som inte känner till hasLayout så väl rekommenderar jag denna grymt utförliga artikel: http://www.satzansatz.de/cssd/onhavinglayout.html |
Hack hit o hack dit.. :)
testa med ul { width:100%} |
Det är ju samma sak, dvs det ger ul-elementet hasLayout. Dock ger det bieffekten att min ul får fel bredd (eftersom jag har en margin-right!=0 på ul), så jag föredrar nog height:1%. Inget av detta ska ju egentligen behövas, men eftersom man ibland behöver åtgärda brister i vissa webbläsare måste det till ett och annat "hack".
|
Citat:
|
Har inte provat heller, men:
Citat:
|
Min första tanke var att li är av typen inline och kan därför inte ha marginaler och liknande och att det skulle räcka att sätta display:block på den?
|
Nja, li är ju faktiskt ett block-element default... Hursomhelst, enligt standarden ska ju alla värden på display utom 'none' ignoreras för element som är floating, men det finns ju någon bug i MSIE som går ut på att så inte är fallet. Lösningen skulle då vara att sätta display:inline på li, men det testade jag och det hjälpte inte.
-- Tillägg -- Här läste jag om det förresten: http://www.positioniseverything.net/...oatIndent.html http://www.positioniseverything.net/...ed-margin.html |
Detta funkar för mig ;)
Nu tog jag in lite css från min reset.css. Med andra ord så behövs något i[*] elementen som man lägger stilarna på istället för[*] om det ska vara en "meny" liknande sak. Kan säkert ersätta[*] med[*]<span></span> Kod:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
Alla tider är GMT +2. Klockan är nu 09:40. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson