margin: auto; slutade plötsligt fungera i IE7

Permalänk
Medlem

margin: auto; slutade plötsligt fungera i IE7

Jag håller på med en liten webbplats och har kunnat använda margin: auto; i IE7, för att jag höll mig till standarder trodde jag. Men igår hände plötsligt nånting, och pang så fungerar inga standarder... förstår inte vad som hände...

Är det hasLayout eller nånting som spökar? hasLayout är väl bara på enskilda element? Och jag har massor av width och height satta på det som inte fungerar längre... typ :hover-selectorn i css, margin: auto;, position: absolute; inuti position: relative;, det är som att jobba med IE5.5 helt plötsligt... inte ens min-height funkar längre.

Jag lade ut den så ni kan kolla: http://beta.tvabackarlask.se/

Ett par exempel är bilden #news_top_right (rundade hörnen i rutan "Nyheter") som har right: 0px; men som jag nu måste sätta right: -1px; på för att den ska hamna rätt i IE7... det behövdes inte förut, och jag har inte rört news-rutan. Likaså ser ni under Gästbok att margin: auto; inte fungerar. Jag vet att jag kan lösa det med text-align: center; men margin auto funkade ju igår... på samma sida ska det bli grön bakgrund när man hovrar över både inläggen och rutan längst ner där man skriver in nya inlägg, har använt :hover men det fungerar inte längre...

Permalänk
Medlem

råkat ut för samma sak:/

Visa signatur

Burk Nr.1 : Asus P8Z68 V-Pro | i7 2600k @ 4,4 | EVGA GTX780 Classified | Corsair Vengeance 8GB DDR3 1600Mhz | Corsair Obsidian 650D | Corsair TX650M | Corsair H100

Burk Nr.2 : MSI P35 Neo2 | Core 2 Duo E6850 @ 3,2Ghz | Powercolor Radeon HD5850 1GB | Corsiar Twin2X 6400 2x2GB | Corsair 550W

Permalänk
Medlem

Hittade felet! Det har med encoding att göra. Det blir ett tecken allra först i källkoden i IE7, ett sånt här:

<!DOCTYP

Håller på nu att konvertera fram och tillbaka med Notepad++ men jag har bara lyckats få till det ett par gånger... väldigt konstigt. Fick till det med UTF-8 (without BOM)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av azoapes
Hittade felet! Det har med encoding att göra. Det blir ett tecken allra först i källkoden i IE7, ett sånt här:

<!DOCTYP

Håller på nu att konvertera fram och tillbaka med Notepad++ men jag har bara lyckats få till det ett par gånger... väldigt konstigt. Fick till det med UTF-8 (without BOM)

Snarare så att det har med IE's quirk mode att göra. Troligtvis skickar din server sidan som latin-1 eller liknande, vilket får IE att tolka BOM som två tecken innan doctypen, och då går IE in i quirks mode eftersom doctype inte är först i dokumentet.

Se till att servern skickar UTF-8 som UTF-8 och inget annat.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av You
Snarare så att det har med IE's quirk mode att göra.

Snarare än... vad? Encoding? Det är ju encodingen som gör att det blir ett tecken som föregår doctype och att IE då hamnar i quirks/compatibility mode är ju naturligt.

Citat:

Ursprungligen inskrivet av You
Se till att servern skickar UTF-8 som UTF-8 och inget annat.

Jag försökte med PHPs header() men det hjälpte inte. Har redan som du ser meta charset utf8. Använder shared host (One). Vad föreslår du, mer specifikt?

Har fått det att fungera bra nu iaf, encodingen är UTF8 utan BOM.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av azoapes
Snarare än... vad? Encoding?

Visst, det är encoding som gör att IE går in i quirks mode, men det är quirks mode som gör att IE gör fel med din CSS. Ville bara uppmärksamma folk på att det.

Citat:

Ursprungligen inskrivet av azoapes
Jag försökte med PHPs header() men det hjälpte inte. Har redan som du ser meta charset utf8. Använder shared host (One). Vad föreslår du, mer specifikt?

Har fått det att fungera bra nu iaf, encodingen är UTF8 utan BOM.

Föreslår t.ex. header(), då meta-taggen är lite redundant (din server ska berätta om sånt du skriver i http-equiv ändå, det är därför vi har headers i HTTP). Uppenbarligen fattar inte IE att BOM bara är till för att lista ut byte-order, så enda lösningen är väl att inte skicka med BOM. Dåligt av IE i min mening.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av You
Föreslår t.ex. header(), då meta-taggen är lite redundan

Har som sagt testat header(), det gav ingen skillnad. Jag har varit tvungen att köra SET CHARSET till MySQL-servern också för att mina ajax-lösningar skulle få fram rätt tecken, detta på grund av att jag sparat alla filer som UTF-8. Livet är enklare när man har kontroll över servrarna...

Någon som förstår varför http://beta.tvabackarlask.se/gig inte fungerar i IE ?