Avatar billede brinck10 Nybegynder
30. juli 2008 - 15:37 Der er 12 kommentarer og
1 løsning

CSS problem

Hej Eksperter.

Er i gang med at sætte et design op for en bekendt, og er støt på et problem, jeg ikke kan løse. Fejlen er enkel og ses i Mozilla Firefox - det er højre marg der er gal. Resultat skal gerne ligne sådan som layoutet ser ud i IE.

Layoutet kan ses på www.sjfoto.dk/demo/

Jeg har oprettet et tidligere spørgsmål, i en anden kategori uden held (http://www.eksperten.dk/spm/839893) og beder derfor om hjælp her. Som der antages i det andet spørgsmål, må det være IE der tolker CSS'en forkert, siden det er den eneste browser som viser det rigtigt. Spørgsmålet er så: Hvor/Hvad er fejlen?

Mit stylesheet er som følger:

/* CSS */

/* Body Structure */
body{
    background-color:#000000;
}
#container{
    text-align:center;
}
#layout{
    margin:36px auto 36px auto;
    padding:0px 21px 21px 21px;
    background-color:#FFFFFF;
    width:740px;
}
#topbg{
    background-image:url("images/sjfoto_layoutbg.gif");
    background-repeat:no-repeat;
    background-color:#FFFFFF;
    width:698px;
    height:21px;
}
#topfooter{
    text-align:right;
    background-image:url("images/sjfoto_footsbg.gif");
    background-position:top;
    width:698px;
}
#logo{
    margin-bottom:1px;
    background-image:url("images/sjfoto_logo.gif");
    background-color:#000000;
    width:698px;
    height:122px;
}
#menuline{
    margin-bottom:21px;
    text-align:center;
    background-image:url("images/sjfoto_menulinebg.gif");
    background-repeat:no-repeat;
    background-color:#FFFFFF;
    width:698px;
}
#content{
    text-align:left;
    width:698px;
}
#menu{
    margin-right:21px;
    background-image:url("images/sjfoto_menubg.gif");
    background-position:top;
    background-repeat:no-repeat;
    background-color:#FFFFFF;
    float:left;
    width:140px;
    height:118px;
}
#main{
    background-color:#FFFFFF;
    float:left;
    width:537px;
}
#bottomfooter{
    text-align:left;
    background-color:#FFFFFF;
    clear:both;
    width:698px;
}
/* End Body Structure */

På forhånd tak.
Frederik
Avatar billede erikjacobsen Ekspert
30. juli 2008 - 17:23 #1
Uden en DOCTYPE kan man ikke regne med at browsere gøre andet end at gætte sig frem. Se fx http://www.alistapart.com/articles/doctype/
Avatar billede mclemens Nybegynder
31. juli 2008 - 00:13 #2
Et dokument uden doctype er et mareridt, du får problemer med at bruge padding på hele sitet, hvis du skulle rette op på margin'en skulle du sige:

#layout{
    margin:36px auto 36px auto;
    padding:0px 0px 21px 0px;
    background-color:#FFFFFF;
    width:740px;
}

men at tilføje en doctype er klart det bedste.

Udover denne del så centrerer FF ikke underliggende elementer bare fordi et udvendigt element har fået en text-align: center på sig ... der skal du sætte en margin: 0 auto; på de elementer der skal centreres - men med doctypen løst kan du bruge padding og så bør du ikke have problemer med at centrere det med en hvid kant rundt om ;)
Avatar billede olebole Juniormester
31. juli 2008 - 00:16 #3
<ole>

Vrøvl! Der er _ingen_ alternativer til en DTD. Uden en DTD er der slet ikke tale om et HTML-dokument. En DTD er ikke 'klart det bedste' ... det er en klar nødvendighed!  ;o)

/mvh
</bole>
Avatar billede mclemens Nybegynder
31. juli 2008 - 01:07 #4
En doctype er krævet iflg. w3c og jeg anbefaler også en sådan, dog
nævner jeg hvad der kan løse situationen, som den ser ud, jeg anbefaler
ikke at løse den sådan ... men jeg ser ingen grund til ikke at nævne det.

Der kan komme andre forbi en tråd - hvor hele deres "fejldesignede" side vil gå helt
fra hinanden med en doctype, men med lidt fusk kan det lappes sammen til man får lavet
designet om så det virker med doctypen, derfor mener jeg godt det kan nævnes. ;o)
Avatar billede brinck10 Nybegynder
31. juli 2008 - 11:42 #5
Hej igen. Tak for de mange svar.

Har læst artiklen, og prøvet med de forskellige doctypes, uden at nå videre. Nu bliver margnen dobbelt så stor i IE, og den laver stadig samme fejl i mozilla på siden(www.sjfoto.dk/demo).

Er det fordi jeg bruger en forkert doctype, eller er designet forkert sat op? Føler mig helt hjælpeløs :-(

/Frederik
Avatar billede mclemens Nybegynder
31. juli 2008 - 12:08 #6
- Nedsæt din width til du opnår dit ønskede resultat.
... fejlen i Mozilla er det jeg skrev i 31/07-2008 00:13:38

"Udover denne del så centrerer FF ikke underliggende elementer bare fordi et udvendigt element har fået en text-align: center på sig ... der skal du sætte en margin: 0 auto; på de elementer der skal centreres - men med doctypen løst kan du bruge padding og så bør du ikke have problemer med at centrere det med en hvid kant rundt om ;)"

... Men som sagt, hvis du nedsætter din width til samme width
som det indvendige så har du ikke behov for at gøre ovenstående.
(tror det er 698px width på layout skal være ...)
Avatar billede brinck10 Nybegynder
31. juli 2008 - 12:19 #7
Mange tak. Nu virker det.

Jeg har åbenbart haft en forkert forståelse af padding i laang tid :O

Smid svar.
Avatar billede mclemens Nybegynder
31. juli 2008 - 13:04 #8
Velbekom, men kast pointene til Erik - han kom med løsningen.
... det er den manglende doctype der giver problemerne.
Avatar billede erikjacobsen Ekspert
31. juli 2008 - 20:23 #9
Jeg griber altså ikke. Jeg samler slet ikke på point, tak.
Avatar billede brinck10 Nybegynder
04. august 2008 - 08:01 #10
Okay. Mclemens vil du have dem? Eller snupper jeg dem gerne
Avatar billede mclemens Nybegynder
04. august 2008 - 09:13 #11
Ikke denne gang, gem dem
til et andet spørgsmål ;)
Avatar billede olebole Juniormester
04. august 2008 - 18:35 #12
- vær forøvrigt lige opmærksom på, at 'text-align:center' centrerer alle underliggende elementer - som ikke er blok-elementer  ;o)

Sagt på en anden måde:

*) Man centrerer alt inline indhold med 'text-align:center'
*) Man centrerer block elementer med 'margin:auto' (naturligvis kun, hvis de har fået sat en bredde)
Avatar billede brinck10 Nybegynder
05. august 2008 - 07:56 #13
Mange tak :-) Alle tre.
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