• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tabelle horizontal und vertikal zentrieren

Status
Für weitere Antworten geschlossen.

Ice-Cube

Neues Mitglied
Moin!
Ich habe eine Website mit Tabellen erstellt und wollte nun das diese horizontal und vertikal zentriert auf der Bildschirmfläche im Browser angezeigt wird. Horizontal zentriert stellt kein Problem dar, aber vertikal?

PS: Bitte Lösungsvorschläge mit möglichst wenig CSS posten ;) (Würde gerne ohne <DIV> etc. arbeiten
 
Zuerst, bevor's jemand anders sagt:
Warum Layout mit Tabellen dumm ist: Probleme definiert, Lösungen angeboten

Vertikal zentrieren geht, wenn du eine feste Höhe hast, so (wenn du keine feste Höhe hast macht's ja wenig Sinn zu zentrieren):
Code:
#center {
  height:500px; /* Höhe */
  width:780px; /* Breite */
  postition:absolute;
  top:50%;
  left:50%;
  margin-top:-250px; /* Negative Hälfte der Höhe */
  margin-left:-390px; /* Negative Hälfte der Breite */
}
Code:
<element id="center">
  <!-- Blablabla -->
</element>
Und auch möchte ich noch sagen, weder position:absolute noch negative Außenabstände sind schöne Mittel, lassen sich aber hier nur schwer vermeiden.
 
1. Ohne CSS bist du im WWW verloren. ;)
2. Divs sind deine Freunde. :)
3. Tabellen nicht.
4. Es gibt zwei Möglichkeiten:

Entweder du machst ein div horizontal und vertikal mittig (text-align:center und vertical-align:middle). Problem: Man kann keine divs vertikal mittig machen. Nicht ohne Tricks. Problem: Tricks sind mehr oder weniger komplex. Problem: Du bist (aus deinem Post zu entnehmen) ein CSS-Anfänger, wodurch das ganze noch schwieriger für dich wird. ODER du machst einfach eine TABELLE, die horizontal und vertikal mittig ist. Tatsache: Tabellen sind nicht zum Webdesign gedacht, sondern zum Darstellen tabellarischer Daten.

Falls du die zweite Methode bevorzugst, könnte ich dir einen Code dafür basteln. Ich empfehle dir aber dringend die erste. Selber hab ich das noch nicht probiert, aber hier gibt es eine Anleitung:

Vertical align div | StylizedWeb.com

Hoffe ich konnte dir damit helfen. :)

EDIT:
Da war ich wohl wieder zu langsam. :(

@BcF:
Jop, so in ungefähr sollte das dann aussehen, bin mir aber nicht ganz sicher...
 
Ach menno, das ist mein Spruch :-)

Vertikal zentrieren geht, wenn du eine feste Höhe hast, so (wenn du keine feste Höhe hast macht's ja wenig Sinn zu zentrieren):
Dein Code macht auch das gefährliche horizontale Zentrieren mit negativem margin. Das sollte man nicht benutzen, wie ich erst gestern in einem anderen Thread erklärt habe!

1. Ohne CSS bist du im WWW verloren.
Das ist im 21. Jahrhundert sicher richtig! Denn CSS ist schon seit vielen Jahren DIE Sprache für Layout und Design. HTML ist dafür nie gedacht gewesen.

2. Divs sind deine Freunde.
Aber auch nicht mehr als <body>, <address>, <p> oder <dl>. divs haben keine so besondere Bedeutung, dass man ohne sie nciht auskäme! <div> benutzt man nur zum Gruppieren mehrerer Elemente zwecks gemeinsamer Formatierung mit CSS. Ein Layout mit <div> aufzubauen ist genauso sinnfrei wie ein Layout mit Tabellen aufzubauen.

Gruß,
-Efchen
 
@Efchen: War das jetzt ironisch gemeint (mit dem CSS)? :roll:

P.S.: Wie soll man denn sonst eine Webseite bauen?
 
Du baust sie natürlich mit html auf, formatiert und gestaltet wird dann mit css. Eins ist nichts ohne das andere.
Ja, aber wie soll man sie aufbauen ohne divs oder Tabellen zu verwenden? Ich benutze divs, doch auch das wird immer als schlecht und "nicht semantisch" bezeichnet.
 
"Mal" ein div zu verwenden ist ja nicht schlimm. Man muss aber z.B. nicht um die Menü-<ul> noch einen Div legen, sondern formartiert einfach die ul so wie man sonst den div formatieren würde. Ich nehme eigentlich nur für den content einen div, dort halten sich mehrere <p> absätze und <hX> überschriften auf. Tabellen nur, wenn es wirklich sinn macht, vgl. wieder Warum Layout mit Tabellen dumm ist: Probleme definiert, Lösungen angeboten .
Jaja, mach ich auch nicht (also sowas wie z. B. dein Beispiel mit der Liste). Aber es wird immer angekreidet, dass man sein gesamtes Layout nur aus divs macht (nicht der Inhalt, das Layout!!). Und da war meine Frage: Wie denn sonst?
 
Jaja, mach ich auch nicht (also sowas wie z. B. dein Beispiel mit der Liste). Aber es wird immer angekreidet, dass man sein gesamtes Layout nur aus divs macht (nicht der Inhalt, das Layout!!). Und da war meine Frage: Wie denn sonst?

Ich glaube da wird aneinander vorbei geredet, den Inhalt macht man ausschließlich mit HTML, mir fällt grad nix ein wofür es kein Tag gibt und man zu einem div greifen muß.
Danach werden dann die Tags via CSS ausgezeichnet und wenns gebraucht wird ( ist beim Layouten ja fast unumgänglich) werden den Tags ID´s oder Klassen zugewiesen die bekanntlich dann auch im CSS ausgezeichnet werden.

Sollte es nun nicht ausreichen und die Möglichkeiten der Tags erschöpft sein, dann werden div´s hinzugezogen um zusammengehörenden Abschnitte zu Gruppieren, wofür sie meiner meinung auch gedacht sind und somit sogar "semantisch" einwandfrei sein müssten.

Hab ich was vergessen?

gruß
csstester
 
Ich glaube da wird aneinander vorbei geredet, den Inhalt macht man ausschließlich mit HTML, mir fällt grad nix ein wofür es kein Tag gibt und man zu einem div greifen muß.
Danach werden dann die Tags via CSS ausgezeichnet und wenns gebraucht wird ( ist beim Layouten ja fast unumgänglich) werden den Tags ID´s oder Klassen zugewiesen die bekanntlich dann auch im CSS ausgezeichnet werden.

Sollte es nun nicht ausreichen und die Möglichkeiten der Tags erschöpft sein, dann werden div´s hinzugezogen um zusammengehörenden Abschnitte zu Gruppieren, wofür sie meiner meinung auch gedacht sind und somit sogar "semantisch" einwandfrei sein müssten.

Hab ich was vergessen?

gruß
csstester
Du hast absolut Recht, war zwar keine wirkliche Antwort auf meine Frage, aber egal... Wir sind eh schon total off-topic.
 
Aber es wird immer angekreidet, dass man sein gesamtes Layout nur aus divs macht (nicht der Inhalt, das Layout!!). Und da war meine Frage: Wie denn sonst?
Lass doch einfach mal die divs weg und versuche, Deinen Inhalt mit HTML auszuzeichnen. Das geht genauso.

Die Bedeutung von <div> ist: Gruppiere zwei oder mehr Elemente zwecks gemeinsamer Formatierung. Nur dann brauchst Du ein <div>.

Im Idealfalle hat man zuerst den Inhalt, dann die HTML-Auszeichnung und dann erst das Layout. Die meisten Umsteiger machen zuerst das Layout, und weil sie noch keinen Inhalt haben, nehmen sie <div> als Box.

Aber ein <div> ist nur ein allgemeines Block-Element. Es gibt aber noch etliche andere Block-Elemente, die sich genauso verhalten, wie ein <div>, <address>, <h1>, <ul>, uvm. Aber all diese geben Deinem Inhalt auch eine Bedeutung. Und deswegen verwendet man diese.

<div> dient nur dem Gruppieren von mindestens zwei Elementen zwecks gemeinsamer Formatierung. Hast Du nur ein Element, brauchst Du kein <div> drumrum. Viele Umsteiger/Anfänger glauben, CSS-Eigenschaften könne man nur bestimmten Elementen zuweisen, aber grundsätzlich gilt: Bis auf Ausnahmen kannst Du jede Eigenschaft auch jedem Element zuweisen. Man kann auch ein <h1> positionieren oder einem <p> ein overflow:auto mitgeben. Problemlos. Das begreifen viele nicht, weil das mit den Attributen in HTML wirklich schwierig war, welches für welches Tag überhaupt möglich war.

Probier es mal, eine Website in der Reihenfolge anzugehen:
1. Inhalt schreiben (Texte, Überschriften, ...)
2. Mit HTML auszeichnen und kein <div> verwenden.
3. Layout/Design mit CSS machen, falls nötig, nachträglich Elemente mit <div> gruppieren.

Dann merkst Du, dass <div> für CSS-Design nicht zwingend notwendig ist! Und Du lernst nebenbei auch HTML :-)

Gruß,
-Efchen
 
@ Efchen

Guten Morgen,

@ Efchen

Gestern wollte ich in einem anderen Forum Deine Site über Layouttabellen verlinken,

http://seybold.jan-andresen.de/index.php

und bekam die Meldung:

| Forbidden

| You don't have permission to access /index.php on this server.

Könntest Du mal bitte gucken, was da los ist.

Danke schonmal

Grüße
gaby
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben