Avatar billede radiv Nybegynder
24. februar 2005 - 16:47 Der er 11 kommentarer og
1 løsning

Centreret i Firefox og Opera, men ikke i IE

Hvorfor bliver ikke siden centreret i IE, når den gør det i Opera og Firefox?

Her er html:

<body>
<form id="Form1" method="post" runat="server">
<div id="wrap">
  <div id="header">
  <h1>Header</h1>
  </div>

  <div id="nav">
    <ul>
    <li>Link&nbsp;&nbsp;</li>
    <li>Link&nbsp;&nbsp;</li>   
    <li>Link&nbsp;&nbsp;</li>                       
    <li>Link&nbsp;&nbsp;</li>
    </ul>
  </div>
   
  <div id="main">
  <p>Indhold</p>
  <p>&nbsp;</p>
  <p>Mere indhold</p>
  </div>

  <div id="sidebar">
  <p>Side</p>
  <p>Noget her</p>
  </div>

  <div id="footer">
  <ul>
    <li>Link&nbsp;&nbsp;</li>
    <li>Link&nbsp;&nbsp;</li>
    <li>Link&nbsp;&nbsp;</li>
  </ul>
  </div>
</div>
</form>
</body>
</HTML>

Med følgende css:

body
{
    background-color: #F5F5F5;
    margin:0;
    padding:0;
    min-width: 750px;
}

div#wrap
{
    background:#888e9c;
    margin: 20px auto;
    width:750px;
}


#header
{
  background-color: #888e9c;
}


#nav
{
    background-color:#b7bfc9;   
}

#nav ul
{
    margin:0;
    padding:0;
}

#nav li
{
    display:inline;
    list-style:none;
    margin:0;
    padding:0;
}

#main
{
    background: #ebedf2;
    float:left;
    width:500px;
}

#nav h2, #nav h3, #nav p
{
    padding:0 10px;
}

#footer
{
    background: #b7bfc9;
    clear:both;
}

#footer ul
{
    margin:0;
    padding:0;
}

#footer li
{
    display:inline;
    list-style:none;
    margin:0;
    padding:0;
}
#nav ul
{
    margin:0;
    padding:0;
}

#nav li
{
    display:inline;
    list-style:none;
    margin:0;
    padding:0;
}

#nav p
{
    padding:5px;
    margin:0;
}

#sidebar
{
    width:247px;
    margin-left: 500px;
    background-color:#888e9c;
}

#wrap > #sidebar
{
    width:250px;
}

#sidebar ul
{
    margin-bottom:0;
}

#sidebar h3, #sidebar p
{
padding:0 10px;
}
Avatar billede olebole Juniormester
24. februar 2005 - 23:25 #1
<ole>

body
{
    background-color: #F5F5F5;
    margin:0;
    padding:0;
    min-width: 750px;
    text-align: center;
}

div#wrap
{
    background:#888e9c;
    margin: 20px auto;
    width:750px;
    text-align: left;
}

/mvh
</bole>
Avatar billede olebole Juniormester
24. februar 2005 - 23:26 #2
:)
Avatar billede radiv Nybegynder
25. februar 2005 - 09:26 #3
Se det var jo dejlig nemt!

Men jeg forstår egentlig ikke hvorfor jeg skal angive text-align. Jeg har hentet strukturen fra dette eksempel: http://www.456bereastreet.com/lab/developing_with_web_standards/csslayout/2-col/

Det skulle jo være nok at angive margin på wrap til 20px top og bund, og auto på kanterne, som det vises i det nævnte eksempel.
Avatar billede roenving Novice
25. februar 2005 - 13:43 #4
-- har du en fuldt doctype med, som f.eks. denne, som er inklusive dtd-link ?-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
Avatar billede radiv Nybegynder
25. februar 2005 - 13:49 #5
Ja, jeg har:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
Avatar billede roenving Novice
25. februar 2005 - 14:23 #6
-- det er jo netop _ikke_ inklusive dtd-link, for uden det, vil IE ikke tage udgangspunkt i standarderne, og vil derfor heller ikke benytte margin:auto; og f.eks. aligne block-level elementer efter text-align, hvilket er direkte på tværs af standardens ord !-)
Avatar billede radiv Nybegynder
25. februar 2005 - 14:33 #7
Ups, jeg læste vidst ikke dit svar godt nok.
For helt korrekt, når jeg inkluderer dtd-link, vises siden _næsten_ identisk i de tre browsere.

Tak roenving, så blev jeg lidt klogere.
Avatar billede roenving Novice
25. februar 2005 - 14:46 #8
U'r welcome !-)
Avatar billede olebole Juniormester
25. februar 2005 - 23:52 #9
Selv med den fulde DTD vil IE ikke bruge 'margin:0px auto' til centrering. Derfor bliver du nødt til at sætte 'text-align:center' på det omkransende element - og efterfølgende ophæve denne med 'text-align:left' for at undgå nedarvining (som gjort i reglen: div#wrap).

Det er klart en bug i IE, at den centrerer elementer og ikke blot tekst med 'text-align:center' - ligesom det er en bug, den ikke forstår 'margin:0px auto' korrekt. Den kommer du ikke af med ved at inkludere URL'en i DTD'en. Den må du 'hacke' dig ud af på den viste måde.

Til gengæld vil IE forstå CSS' box-model langt bedre med den fulde DTD. Læs evt. om IE6's DocType Switch her:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie60/html/cssenhancements.asp

Bemærk dog, at ældre IE'ere vil vise siden, somom du ikke havde den fulde DTD  ;o)
Avatar billede olebole Juniormester
25. februar 2005 - 23:58 #10
Et meget sjovt eksempel er dette. Prøv det med og uden URL i DTD'en:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>TITLE</title>
<style type="text/css">
body, html {
    height: 100%;
    margin: 0px;
    padding: 0px;
}
div {
    width: 100px;
    height: 100px;
    background-color: yellow;
    border: 40px solid red;
}
</style>
</head>
<body>

<div>Darvs, du</div>

</body>
</html>

NB: CSS' box-model foreskriver, at det gule felt skal vises som 100x100px med den røde border _udenom_ ... pokkers til forskel, ikk'?  ;o)
Avatar billede roenving Novice
26. februar 2005 - 04:38 #11
>>olebole

-- centrerer IE ikke, når den får dtd-link med ?-)

-- så må du sidde med en meget gammel udgave ...

Følgende centererer i alle browsere, jeg har adgang til:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

<title>Tomt dokument</title>
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
</style>
</head>

<body>
<div style="width:500px;margin:0 auto;background-color:#cdd;">
<br><br><br><br><br><br><br><br><br>
<div id="minDiv">En div-tekst</div>
<span id="minSpan">En span-tekst</span>
<br><br><br><br><br><br><br><br><br>
</div>
</body>

</html>
Avatar billede olebole Juniormester
26. februar 2005 - 05:32 #12
*host-host* ... den stråhat var nu pænere, end den smagte ... glem mit vrøvl om centrering med fuld DTD!  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester