14. oktober 2004 - 15:57Der 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?
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.
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?
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.
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.
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.
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)
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.
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.