[html] Verticaal centreren

Pagina: 1
Acties:
  • 262 views sinds 30-01-2008
  • Reageer

  • lesleyudw
  • Registratie: Oktober 2003
  • Laatst online: 27-11-2023
Ja er zijn al heel wat topics over dit onderwerp, maar mijn vraag gaat over een bepaalde aanpak. Ik heb zo'n beetje overal gezocht naar de beste manier om mbv divjes een site altijd in het midden te houden. Nou heb ik een site gevonden waar ze het stap voor stap uitleggen. De site is op onderstaande link te vinden

http://www.quirksmode.org/css/centering.html

Nu mijn vraag: als ik alle stappen netjes volg gaat het goed TOT het punt waarbij de site vertikaal gecentreerd wordt. Horizontaal wil nog lukken, maar het punt waarbij ze op de site de tabel toevoegen en er voor willen zorgen dat hij vertikaal in het midden blijft staan lukt mij niet. Dit terwijl het bij hun wel lukt, je kan namelijk ook het voorbeeld van hun zien. Op http://www.proxs.nl/~belinda kan je zien wat ik heb. Wie ziet er misschien wat ik fout doe?

Dit is mijn css:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
div {

    border: 1px solid #336699;

}

div.container {
    position: relative;
    margin: 0 auto;
    width: 780px;
    height: 432px;
    text-align: left;
}

div.left {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 200px;
    height: 432px;
}

div.top {
    position: absolute;
    top: 0px;
    left: 200px;
    width: 580px;
    height: 150px;
}

div.main {
    position: absolute;
    top: 150px;
    left: 200px;
    width: 580px;
    height: 282px;
}

table {
    width: 100%;
    height: 100%;
}

td {
    vertical-align: middle;
    text-align: center;
}


En dit mijn html:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <link href="style.css" rel="stylesheet" type="text/css">    
    <title>De mooiste make-up</title>
</head>
<body>
    
<table border=0>
    <tr>
        <td>
    
    <div class="container">
    
        <div class="left">
            Left content
        </div>
    
        <div class="top">
            Top content
        </div>
    
        <div class="main">
            Main content
        </div>
    
    </div>
    
        </td>
    </tr>
</table>
    
</body>
</html>

  • posttoast
  • Registratie: April 2000
  • Laatst online: 11:36
Volgens mij moet je in je stylesheet je body ook nog een hoogte van 100% meegeven. Je table is nu namelijk 100% de hoogte van zijn parent (de body), maar je body heeft slechts de hoogte van de content.

omniscale.nl


  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 19:14
Geen flauw idee, want als ik je code overneem, werkt 't bij mij wel.

Was advocaat maar vindt het juridische nog steeds leuk


  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
Werkt alleen in quirks mode.. Zonder doctype werkt de truc wel (je valid doctype triggered standards mode).
Zie overigens ook het commentaar van PPK rechtsbovenaan de pagina.

[ Voor 24% gewijzigd door Boelie-Boelie op 12-08-2006 11:20 ]

Cogito ergo dubito


Verwijderd

Quirks mode wil je liever niet. Tabellen wil je liever niet. Anders had je net zo goed alle positionering met tabellen kunnen doen.

De bekende truc met position: absolute; top: 50%; height: 420px; margin-top: -210px; werkt wel. Met overigens een groot nadeel: je kunt bepaalde delen van de bovenkant van de site onbenaderbaar maken voor mensen met een klein scherm of venster.

En eigenlijk is het gewoon een beetje goor, ik zou het niet gebruiken voor content pagina's. Het is gewoon handig als een website tegen de bovenkant van het scherm geplakt zit. Zo hoef je niet zo ver met de muis af te leggen in een groot venster, als je een beetje vlot door een site wilt klikken. De meeste navigatie zit min of meer linksboven aan een pagina.

[ Voor 32% gewijzigd door Verwijderd op 12-08-2006 11:40 ]


  • We Are Borg
  • Registratie: April 2000
  • Nu online

We Are Borg

Moderator Wonen & Mobiliteit / General Chat

Verwijderd

Oude meuk. Opera gebruikers moeten maar lekker upgraden. Die horizon is nergens meer voor nodig.

  • We Are Borg
  • Registratie: April 2000
  • Nu online

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Okee, die horizon zou ik ook weg laten als het in de laatste opera goed werkt, maar het is iig beter dan het voorbeeld van de TS :)

  • lesleyudw
  • Registratie: Oktober 2003
  • Laatst online: 27-11-2023

  • kaydie
  • Registratie: Juni 2006
  • Laatst online: 06-01-2022
Probleempje bij kleinere browservensters (kleiner dan de gecentreerde content op de pagina) is dat de content op dat moment van de pagina afloopt en niet meer te bereiken is. Hierbij een alternatieve aanpak, waarbij als de content buiten het venster valt deze deze netjes "top left" blijft staan.

http://www.kaydies.com/tijdelijk/center.html

[ Voor 9% gewijzigd door kaydie op 14-08-2006 02:20 ]


  • posttoast
  • Registratie: April 2000
  • Laatst online: 11:36
kaydie schreef op maandag 14 augustus 2006 @ 02:16:
Probleempje bij kleinere browservensters (kleiner dan de gecentreerde content op de pagina) is dat de content op dat moment van de pagina afloopt en niet meer te bereiken is. Hierbij een alternatieve aanpak, waarbij als de content buiten het venster valt deze deze netjes "top left" blijft staan.

http://www.kaydies.com/tijdelijk/center.html
Leuke oplossing, maar ik vind het persoonlijk niet zo fijn dat er javascript aan te pas moet komen. Je kunt je dan afvragen van netter is: het gebruik van één container-tabel om verticaal te centreren, of allerlei trucs met negatieve margins en javascript. Ik kies dan zelf toch voor de tabel. Semantisch niet de mooiste oplossing, maar het werkt altijd en je code blijft netjes en overzichtelijk.

Toch vraag ik me af waarom ze hiervoor bij het W3C nou niet eens een keer een constructieve oplossing bedenken. Of zit dat al in de pijplijn voor een nieuwe CSS versie?

omniscale.nl


  • lesleyudw
  • Registratie: Oktober 2003
  • Laatst online: 27-11-2023
Leuke oplossing, maar ik vind het persoonlijk niet zo fijn dat er javascript aan te pas moet komen. Je kunt je dan afvragen van netter is: het gebruik van één container-tabel om verticaal te centreren, of allerlei trucs met negatieve margins en javascript. Ik kies dan zelf toch voor de tabel. Semantisch niet de mooiste oplossing, maar het werkt altijd en je code blijft netjes en overzichtelijk.

Toch vraag ik me af waarom ze hiervoor bij het W3C nou niet eens een keer een constructieve oplossing bedenken. Of zit dat al in de pijplijn voor een nieuwe CSS versie?
Ik hoop eigenlijk wel dat ze hier rekening mee houden bij de nieuwe CSS versie! Als er namelijk naar zoekt met google ofzo, kan je inderdaad zien dat ik niet de enige ben die naar de oplossing zoekt!!

  • We Are Borg
  • Registratie: April 2000
  • Nu online

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Verwijderd schreef op zaterdag 12 augustus 2006 @ 11:37:
De bekende truc met position: absolute; top: 50%; height: 420px; margin-top: -210px; werkt wel. Met overigens een groot nadeel: je kunt bepaalde delen van de bovenkant van de site onbenaderbaar maken voor mensen met een klein scherm of venster.
* We Are Borg geeft het toch een subtiel kickje omhoog.

Waarvoor heeft de TS gekozen :) ? Ben zelf ook op zoek naar een nette oplossing voor verticaal centreren, maar zoals cheatah al aangeeft (en de link van anne): als je viewport te klein wordt, krijg je geen scollbalk verticaal en mis je dus content.

JS oplossing werkt wel, maar zou het toch graag zonder JS willen oplossen :)

Zelf zie ik de volgende opties:

- CSS icm met JS (jammer van JS)
- Table (tjsa..)
- Huidige oplossing die cheatah al noemde

Imo is de laatste echt geen optie: wil geen content missen. CSS icm met JS misschien dan nog wel de enige weg, want een tabel is weer zo jammer :)

[ Voor 15% gewijzigd door We Are Borg op 12-12-2006 00:10 ]


  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Inderdaad, CSS en JS of wachten op CSS3. Een andere (nette) oplossing ben ik nog niet tegengekomen.

Check voor de grap deze eens: http://www.jakpsatweb.cz/...gn-final-solution-en.html (let op het css).

March of the Eagles


  • tec
  • Registratie: Juni 2001
  • Laatst online: 17-12-2024

tec

TEC

Techniek in onderstaande artiekel is weer eens wat anders.

http://exanimo.com/css/ve...ering-with-a-floated-shim

  • We Are Borg
  • Registratie: April 2000
  • Nu online

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
http://erik.kabel.utwente.nl/got/test9.html

Gebruik nu deze testcase als basis. Raar genoeg ( ;) ) kan ik er geen nadeel aan vinden. Werkt in IE en Fx, zonder JS, en bij resizen valt er geen tekst buiten het scherm.

Ik plaats het hier omdat iemand misschien toch nog een 'nadeel' kan ontdekken of wellicht er wat aan heeft (TS). Eigenlijk de oplossing die cheatah al noemde, zonder position:absolute. Ik heb het gevoel dat ik iets mis, maar goed

Getest: IE7, Fx2.0, Opera 9.02

voorbeeld is met header en footer, maar pak dus alleen de gehele box als uitgangspunt

[ Voor 30% gewijzigd door We Are Borg op 13-12-2006 02:01 ]


  • posttoast
  • Registratie: April 2000
  • Laatst online: 11:36
We Are Borg schreef op woensdag 13 december 2006 @ 01:52:
http://erik.kabel.utwente.nl/got/test9.html

Gebruik nu deze testcase als basis. Raar genoeg ( ;) ) kan ik er geen nadeel aan vinden. Werkt in IE en Fx, zonder JS, en bij resizen valt er geen tekst buiten het scherm.

Ik plaats het hier omdat iemand misschien toch nog een 'nadeel' kan ontdekken of wellicht er wat aan heeft (TS). Eigenlijk de oplossing die cheatah al noemde, zonder position:absolute. Ik heb het gevoel dat ik iets mis, maar goed

Getest: IE7, Fx2.0, Opera 9.02

voorbeeld is met header en footer, maar pak dus alleen de gehele box als uitgangspunt
Hmmm, ook in IE6 lijkt hij te werken. Kan iemand hem nog even door Safari knallen?

omniscale.nl


  • Digital-DNA
  • Registratie: Juli 2000
  • Laatst online: 18-11 16:19

Digital-DNA

Gedigitaliseerd tot op het bot

Nee in Safari werkt het niet, het gele blok zit dan helemaal middenboven in beeld en blijft daar (scrollt niet mee). In Camino werkt het wel.

[ Voor 7% gewijzigd door Digital-DNA op 13-12-2006 08:50 ]

www.nintendocasemods.com


Verwijderd

Ik zou gewoon de table manier pakken.
Helaas is er niet echt een goede oplossing met CSS. (die van Borg ziet er nog wel grappig uit, maar daarvoor heb je spacer.gifs nodig)

Zelf gebruik ik ook wel eens de table manier om een site in het midden te krijgen
(als het dan toch moet :)):
http://www.absoluut-glastechniek.nl/profile.html
voor SEO maakt het niet uit

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 05-11 19:33
We Are Borg schreef op woensdag 13 december 2006 @ 01:52:
http://erik.kabel.utwente.nl/got/test9.html
Gebruik nu deze testcase als basis. Raar genoeg ( ;) ) kan ik er geen nadeel aan vinden. Werkt in IE en Fx, zonder JS, en bij resizen valt er geen tekst buiten het scherm.
Vind je die spacer gifs geen nadeel? Dan neem ik eerlijk gezegd nog liever een tabel.

Noushka's Magnificent Dream | Unity


  • We Are Borg
  • Registratie: April 2000
  • Nu online

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Ehm, spacer gifs? Ik pak puur de CSS van #content en de body/html, niks meer, dus geen spacers
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
html, body {
    width: 100%; 
    height: 100%;
    min-height: 455px; 
    min-width: 760px;
}

#verticalwrapper {
    text-align: left;
    position: relative; 
    margin: -223px auto;
    top: 50%; 
    width: 760px;
    height: 455px; 
}

Werkt prima. Normaal met de position absolute (cheatah) had ik dat er dus een deel weg viel wanneer de viewport te klein was. Bij deze oplossing dus niet.

Geen spacers, puur css (wat ik hier boven dus toon, niks meer) en werkt in IE7/Fx/Opera. IE6 wordt ook genoemd, maar weet niet of dat met spacer is of niet? Heb hier geen IE6 standalone draaien. Safari blijkt niet te werken...kan ik mee leven ;)

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 05-11 19:33
Als je die pagina bekijkt, dan zie je spacer gifs in de source staan. Ik nam dus aan dat die noodzakelijk zijn, als die geen functie hebben snap ik niet waarom ze in die pagina staan.

Noushka's Magnificent Dream | Unity


  • We Are Borg
  • Registratie: April 2000
  • Nu online

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Wellicht dat het een functie heeft voor IE6. Begrijp die aanname ook, mijn excuses voor de onduidelijkheid. Momenteel krijg ik IE6 standalone niet aan de praat op Vista, dus kan ik alleen voor IE7/Fx/Opera melden dat het werkt zonder spacer werkt :)
Pagina: 1