Avatar billede luctatic Nybegynder
14. oktober 2004 - 15:57 Der er 22 kommentarer og
1 løsning

XHTML - ikke align="center" og style="align:center" fungerer ikke

Som subject siger, så har jeg et problem nu hvor jeg er ved at opdatere en gammel side til XHTML-strict.

Siden indeholder blandt andet en tabel, og denne tabel skal centreres. I "gamle" dage ville jeg bruge <center>, og senere var det så <align=center>, men nu skal det som sagt være xhtml-strict og der er de to tags jo ikke tilladt.

Jeg ville så bruge <div style="align:center"><table>blabalbla</table></div> men dette centrerer ikke min table. Den er bare den vanlige left-aligned. Hvordan får man den centreret?
Avatar billede nikolajdu Nybegynder
14. oktober 2004 - 16:00 #1
style="text-align:center"
Avatar billede roenving Novice
14. oktober 2004 - 16:01 #2
<table style="margin:0 auto;">
Avatar billede luctatic Nybegynder
14. oktober 2004 - 17:05 #3
Ok, jeg prøvede så en blandig af dem, og til sidst prøvede jeg begge to.

<table border="0" style="width:750px;text-align:center;margin:0 auto">

Og tabellen står STADIG til venstre.
Avatar billede roenving Novice
14. oktober 2004 - 17:10 #4
Jeg ville nok pakke kalorius ind i en div:

<body style="text-align:center;">
  <div style="width:750px;margin:0 auto;">
    <table style="width:750px;">
      <tr>
        <td>Indhold</td>
      </tr>
    </table>
  </div>
</body>
Avatar billede knudgert Nybegynder
14. oktober 2004 - 18:19 #5
En ting, som også er ret vigitgt, er at man skal sørge for at IE viser siden i standard mode og ikke i quirks mode.

Det afhænger af, hvordan doc type er skrevet.

Der må _ikke_ stå noget over
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Avatar billede luctatic Nybegynder
14. oktober 2004 - 18:59 #6
Hehe - den er faktisk pakket ind i en <div>

<div>
<table border="0" style="width:750px;text-align:center;margin:0 auto">

Det er så bare en tom div. Og der er skam en doc-type i starten. Dokumentet er 100% valid xhtml strict, hvilket er årsagen til at jeg ikke gider bruge gamle deprecated tags, selvom de rent faktisk virker stadigvæk.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Avatar billede roenving Novice
14. oktober 2004 - 19:01 #7
Prøv at give den div de style-egenskaber, jeg har vist, så fungerer det perfekt !-)
Avatar billede luctatic Nybegynder
14. oktober 2004 - 19:09 #8
Ok, jeg prøvede det som roenving sagde, med at smide styles ind i div-tagget (hvor jeg tidligere havde align:center) og det lader til at "margin:0 auto" gør tricket.

Nu kommer spørgsmålet så - hvorfor? Hvad er det helt præcist at margin:0 auto gør som får det til at virke, når <div style="align:center"> ikke gør?
Avatar billede luctatic Nybegynder
14. oktober 2004 - 19:29 #9
Og hvis jeg ikke har width:100% (eller width:675px som i dette tilfælde)  hvert fald skal width i table tag'et være lige så stort som i div-tagget. Ellers virker det igen ikke.
Avatar billede luctatic Nybegynder
14. oktober 2004 - 19:32 #10
Jeg smider sq lige linket til siden - gør det lidt lettere. Den er skrevet i JSP kode, så den er ikke 100% pæn når man ser html sourcen.


http://fisk.lir.dk/startsiden.jsp
Avatar billede knudgert Nybegynder
14. oktober 2004 - 19:42 #11
Siden er nu ikke xhtml, men strict html 4.01, hvilket du jo også angiver som doctype (derfor er der ikke det problem, som jeg påpegede).
margin: auto tilpasser et blokelement, så laver en margin, der passer i størrelsen i siderne, men kræver naturligvis, at der angives en vidde på elementet.
Avatar billede luctatic Nybegynder
14. oktober 2004 - 19:54 #12
Ok, dvs for at margin:0 auto skal virke, så skal man sætte width på dev tag'et og det den omkranser?

Der er ikke andre muligheder? Lidt upraktisk at jeg skal sætte style="width:100%" på alle table-tags. Og jeg ændrer lige min doc-type. Tak fordi du opdagede det.
Avatar billede roenving Novice
14. oktober 2004 - 22:01 #13
Du kan bare:

<style type="text/css">
table{width:100%;}
</style>
Avatar billede knudgert Nybegynder
14. oktober 2004 - 22:05 #14
Ja, man er nødt til at angive en width, det kan så være i px, % eller noget andet.
Hvis man ikke angiver nogen width, så vil default værdi blive brugt og det er 100%.
I princippet vil det stadigvæk være centreret, men når en tabel f.eks. så vil fylde 100% af sidens bredde, så vil man ikke kunne se, at den er centreret (det vil være 100% af 100% og så er der ikke levntet plads til margin)
Avatar billede luctatic Nybegynder
14. oktober 2004 - 23:17 #15
Hvad så med et element inde i en celle? Hvordan får man det centreret? FX et billede, eller en inputbox. <img src="" style="align:center"> fungerer vist ikke.
Avatar billede roenving Novice
14. oktober 2004 - 23:21 #16
Det hedder tect-align !-)
Avatar billede knudgert Nybegynder
14. oktober 2004 - 23:56 #17
>roenving
Jeg vil nu foreslå
text-align
;-)
Avatar billede roenving Novice
15. oktober 2004 - 00:01 #18
*lol*

-- det er voldsomt som de der tastaturer tager fejl ...
Avatar billede luctatic Nybegynder
15. oktober 2004 - 09:32 #19
Perfekt. Nu virker det bare. Jeg takker. Point til dig Roenving - og du må også godt få et par for at rette hans udemærkede typo, Knudgert =)
Avatar billede roenving Novice
15. oktober 2004 - 15:38 #20
Velbekomme '-)
Avatar billede knudgert Nybegynder
15. oktober 2004 - 19:16 #21
Giv dem bare til roenving. ;-)
Avatar billede roenving Novice
16. oktober 2004 - 01:39 #22
Tak for point ;~}
Avatar billede luctatic Nybegynder
16. oktober 2004 - 12:14 #23
:D

Tak for svar =)
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