24. september 2005 - 14:51Der er
24 kommentarer og 1 løsning
positioning css
hej Eksperter,
Jeg har bygget et site, hvor alting er placeret via:
img.top{ position:absolute; top: 199px; left: 5px; } altså via pixel afstande. Men jeg ville egenligt gerne lave det om til at siden altid vises som placeret i midten af skærmen. sådan som den er nu, er alting jo placeret i øverste venstre hjørne hvis man ser den i højere opløsning. Hvordan positionerer jeg alting sådan, at hele designet placerer sig i midten?
eh, næ, det får jo bare teksten til at stå centreret istedet for venstrestillet...måske forklarer jeg det ikke godt nok. jeg prøver lige igen.
På min side har jeg både billeder, tekst, links, menu osv, som tilsammen danner en helhed og er placeret et bestenmt sted i forhold til hinanden, så de tilsammen danner et bestemt design. siden er lavet til 1024*768 men ses også fint i højrere opløsninger. Men i de høje opløsninger placerer hele designet sig lidt til venstre pga. alt er positioneret via px. MEn så er det jeg gerne vil have hele designet til at placere sig i midten ligegyldigt hvilken opløsning brugeren har. sådan så selv hvis siden bliver set i en høj opløsning, så er der bare mere plads udenom selve designet end hvis man så den i en lav opløsning...
efter at ha tænkt lidt over det, tror jeg faktisk ikke det hjælper at bruge procent, det samme problem vil opstå...hvad der i en lav opløsning vil være måske 1% vil jo skulle være en højere procent i en højere opløsning..
img.top var bare et eksembel på at jeg placerer alting via px som siden er nu...det er jo også for alt andet: a.filnavn, img.filnavn, p.filnavn, table.filnavn osv..
Som udgangspunkt ville jeg altid bruge tabeller til alt. Det er nemmere at styre.
Som jeg kan forstå dig, så er der noget, der nærmest bare 'flyder rundt'. Hvis du lagde det i en tabel, ville det være nemt at centrere tabellen, så den stod centreret uanset opløsning...
hmm...det kan jeg godt se pointen i...jeg har lidt svært ved at overskue hvordan jeg sætter alting ind i den samme table med det design jeg har valgt, men jeg må lige prøve at rode med det..det må jo nærmest betyde jeg skal lave alting forfra!
der er ikke noget der "flyder rundt" alt er positioneret med css..det betyder jo bare at som det er nu sidder det 100% fast i den placering det har, selvom ma nser det i forskellige opløsninger.
Det lyder som en god ide. Husk at tabeller er multifleksible, hvis de benyttes rigtigt. Det er som regel også en god ide at bruge tabeller indeni tabeller, så kan de justeres individuelt.
Benytter du div med id og class og så styler dem i stylesheet, eller hvordan er din side bygget op. Jeg har selv lavet nogle sider hvor jeg benytter float til at positionere elementer ifht. hinanden og det fungerer nogenlunde (selvom det til tider kan være spøjst at arbejde med). Jeg plejer at gå ud fra flg. tommelfingerregler når jeg arbejder med positionering via float:
1. vær meget specifik med bredder af elementer 2. hold så vidt muligt kun to elementer på samme niveau, hvis der skal være flere så indkapsel dem, så reglen overholdes.
Og arbejder frem efter denne metode:
* start udefra og få rammernes placering og dimensioner på plads * detaljer venter (farver, fonte osv.) til sidst
jeg bruger class (men ikke div?) fx: <table class="navn"> jeg kender ikke så meget til float, jeg er ret så noob, som i nok havde regnet ud:)
hvis det lykkes mig at smide hele møget ind i en overordnet table så det virker, skal jeg så give den table en class og så så...hvad...noget i retning af table align center?
Det er super simpelt: Lav en <div> Hvis din side i alt er fx 100px bred, så gør du således:
<div style="position:absolute; width:100px; left:50%; margin-left:-50px;"> Al din nuværende HTML kode. </div>
Dvs. du sætter siden til at blive placeret 50% inde, men med din margin-left:-50px; så bliver den korrekt placeret. Dvs: koden er således: position:absolute; width:[bredde]px; left:50%; margin-left:-[bredde]px;
-- og det skal da tilføjes, at mtrolles forslag har et par uheldige bivirkninger, hvis man laver en side til almindelig bredde, nemlig at venstre-kanten forsvinder ud til venstre, hvis brugeren har en browser-bredde, som er mindre end sidens ...
-- mens bjoarns (og mit link) altid vil beholde mindts venstre-kanten inde i siden !-)
-- desværre er bjoarns trick med text-align:center; nødvendigt, hvis man skal understøtte de gamle IE'er, men med nutidige skal man bare tilføje en kvalificeret doctype, som det f.eks. vises på http://www.eksperten.dk/spm/520876#rid4783270 !-)
Endnu en tilføjelse er nødvendig, for det er ikke noget problem at bruge absolut positionering inde i container-diven, den skal blot selv have position:relative; i sin style-regel !-)
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.