ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
2320
2320
EMPFEHLEN
-
Wie kann ich ohne Tabellen in CSS in einem DIV Tag vertikal zentrieren.
vertical-align:middle; funktioniert leider nicht.
Danke für Hilfe.
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
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Unbenanntes Dokument</title> <style type="text/css"> <!-- #picBox { float: left; background-color: #f2f2f2; border: 1px solid #e1e1e1; vertical-align:middle; text-align:center; height: 142px; width: 142px; position: relative; margin-right: 10px; margin-bottom: 10px; padding: 5px; } #thumb { BORDER-RIGHT: #e1e1e1 1px solid; BORDER-TOP: #e1e1e1 1px solid; BORDER-LEFT: #e1e1e1 1px solid; BORDER-BOTTOM: #e1e1e1 1px solid; BORDER-COLLAPSE: collapse; background-color: #f2f2f2; } --> </style> </head> <body> <table width="630" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="620"> <DIV id=picBox align="center"><img src="Download.jpg" width="130" height="80" id="thumb" /></DIV> <DIV id=picBox align="center"><img src="Download.jpg" width="130" height="80" id="thumb" /></DIV> <DIV id=picBox align="center"><img src="Download.jpg" width="130" height="80" id="thumb" /></DIV> <DIV id=picBox align="center"><img src="Download.jpg" width="130" height="80" id="thumb" /></DIV> <DIV id=picBox align="center"><img src="Download.jpg" width="130" height="80" id="thumb" /></DIV> </td> </tr> </table> </body> </html>
-
Hi,
wenn die Höhe und die Breite bekannt sind, sollte ein Zentrieren über absolute
Positionierung möglich sein.
Zunächst wird dem umschliessenden DIV die CSS-Eigenschaft position: relative;
zugewiesen.
Die Elemente innerhalb dieses DIVs werden wie folgt absolut positioniert:Code :1 2 3 4 5 6 7 8 9 10
.picBox { float: left; background-color: #f2f2f2; border: 1px solid #e1e1e1; text-align: center; height: 142px; width: 142px; margin-right: 10px; margin-bottom: 10px; padding: 5px; [B]position: relative;[/B] /* Elemente innerhalb des DIVs können absolut zu diesem positioniert werden */}
Ausserdem müssen die CSS-Definitionen Klassen (.thumb, .picBox) sein undCode :1 2 3 4 5 6 7 8 9 10 11
.thumb { BORDER-RIGHT: #e1e1e1 1px solid; BORDER-TOP: #e1e1e1 1px solid; BORDER-LEFT: #e1e1e1 1px solid; BORDER-BOTTOM: #e1e1e1 1px solid; BORDER-COLLAPSE: collapse; background-color: #f2f2f2; position: absolute; /* Bild in der umschliessenden Box absolut positionieren */ top: 50%; /* Obere linke Ecke vertikal zentrieren */ margin-top: -40px; /* Um die Hälfte der Höhe nach oben korrigieren */ left: 50%; /* Obere linke Ecke horizontal zentrieren */ margin-left: -65px; /* Um die Hälfte der Breite nach links korrigieren */}
keine IDs (#thumb, #picBox), da IDs in einem Dokument eindeutig sein müssen!
Der HTML-Code sieht somit folgendermassen aus:
Das Ganze konnte ich jedoch nur im IE6 testen. Dort funktioniert es allerdingsCode :1 2 3 4 5 6 7 8 9 10 11
<table width="630" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="620"> <DIV [B]class[/B]="picBox" align="center"><img src="Download.jpg" width="130" height="80" [B]class[/B]="thumb" /></DIV> <DIV [B]class[/B]="picBox" align="center"><img src="Download.jpg" width="130" height="80" [B]class[/B]="thumb" /></DIV> <DIV [B]class[/B]="picBox" align="center"><img src="Download.jpg" width="130" height="80" [B]class[/B]="thumb" /></DIV> <DIV [B]class[/B]="picBox" align="center"><img src="Download.jpg" width="130" height="80" [B]class[/B]="thumb" /></DIV> <DIV [B]class[/B]="picBox" align="center"><img src="Download.jpg" width="130" height="80" [B]class[/B]="thumb" /></DIV> </td> </tr> </table>
problemlos.
Ich hoffe, das hilft Dir weiter.
Ciao
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
das mit den negativen margins funktioniert glaube ich nur in opera und ie5 für den mac nicht
im weiteren
BORDER-RIGHT: #e1e1e1 1px solid;
BORDER-TOP: #e1e1e1 1px solid;
BORDER-LEFT: #e1e1e1 1px solid;
BORDER-BOTTOM: #e1e1e1 1px solid;
kannst du zu << border: 1px solid #e1e1e1; >> zusammenschreiben
-
Hi,
habe beim Testen heute festgestellt, dass es im Netscape 7.1 und im Opera 7.22
nicht funktioniert - sorry.
Eine alternative Möglichkeit könnte das Ausrichten mit margin-top und margin-bottom
sein. Da die Grössen von Deinem Download-Bild immer gleich ist, könnte durch
einen festen Abstand zum oberen und unteren Rand ein vertikales Zentrieren
erreicht werden.
Dazu musst Du aber auf das padding: 5px; in der Klasse .picBox verzichten,
da es sonst durch den Box-Model-Bug im IE zu Fehlausrichtungen kommt.
CSS:
Der HTML-Code bleibt der gleiche wie bisher.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
.picBox { float: left; background-color: #f2f2f2; border: 1px solid #e1e1e1; text-align: center; height: 142px; width: 142px; margin-right: 10px; margin-bottom: 10px;} .thumb { border: 1px solid #e1e1e1; BORDER-COLLAPSE: collapse; background-color: #f2f2f2; margin-top: 29px; /* Abstand zum oberen Rand */ margin-bottom: 29px; /* Abstand zum unteren Rand */}
Damit konnte ich das vertikale Zentrieren erfolgreich im IE 4, IE 5.0, IE 5.5, IE6, Netscape 7.1,
Mozilla 1.6, Firebird 0.9.1 und Opera 7.22 testen.
Ciao
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Danke Quaese,
... die Bilder kommen aus einer Datenbank und haben unterschiedliche Größen.
Dadurch kann ich die feste Positionierung nicht einsetzen.
Gibt es eine andere Möglichkeit bei einer fest definierten DIV Box Bilder vertikal zu zentrieren?
-
Hi,
wenn die Bilder aus einer Datenbank kommen, steht Dir eventuell PHP zur Verfügung.
Damit sollte es eigentlich möglich sein, mit Hilfe von getimagesiz() die Bildgrösse
zu ermitteln und damit die margin-top- und margin-bottom-Werte zu berechnen.
Du könntest dann die margin-Angaben in der Klasse .thumb weglassen. Dafür
trägst Du die berechneten Werte in das betroffene Bild direkt ein.
Der HTML-Code mit dem PHP-Teil könnte zum Beispiel so aussehen:Code :1 2 3
.thumb{ border: 1px solid #e1e1e1; BORDER-COLLAPSE: collapse; background-color: #f2f2f2;}
Vielleicht bringt Dich ja das weiter.PHP-Code:<table width="630" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="620">
<?php
$intDivHeight = 142; // Höhe der umschliessenden Divs
$strSrc = "Download.jpg"; // Bildquelle aus Datenbank, z.B. $strSrc = $row['bild'];
$arrSize = getimagesize($strSrc); // Bildgrösse ermitteln
// Bild mit umgebenden Div ausgeben
echo("<DIV class=\"picBox\" align=\"center\"><img src=\"".$strSrc."\" width=\"".$arrSize[0]."\" height=\"".$arrSize[1]."\" class=\"thumb\" style=\"margin-top:".(($intDivHeight-4-$arrSize[1])/2)."px; margin-bottom:".(($intDivHeight-4-$arrSize[1])/2)."px\"></DIV>");
?>
</td>
</tr>
</table>
Ciao
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
Ähnliche Themen
-
Div vertikal zentrieren
Von Radhad im Forum CSSAntworten: 10Letzter Beitrag: 31.08.09, 10:57 -
div vertikal zentrieren die 2te
Von ne0hype im Forum CSSAntworten: 12Letzter Beitrag: 07.02.08, 17:20 -
Div im Div vertikal zentrieren
Von hubbl im Forum CSSAntworten: 1Letzter Beitrag: 24.01.08, 16:49 -
Div Inhalt Vertikal zentrieren
Von D-LuX im Forum CSSAntworten: 3Letzter Beitrag: 15.10.07, 14:29 -
div vertikal zentrieren
Von tinella im Forum CSSAntworten: 0Letzter Beitrag: 29.09.06, 10:57






Login





