Wie man vertikal zentrieren einer div-container
Kann ich nicht vertikal zentrieren popup_interstitial_table
enthält ein ads-Typ-container.
The fiddle ist es autoexplained: http://jsfiddle.net/NomikOS/D8LLM/
jQuery-Lösungen sind auch willkommen.
HTML:
<div id="popup_interstitial">
<div id="parent">
<div id="popup_interstitial_pro_head_text">
Headline text
</div>
<div id="child">
<div id="popup_interstitial_table">
<div id="popup_interstitial_row2">
<div id="popup_interstitial_title"><?php echo $title; ?></div>
<img id="popup_interstitial_image" src="<?php echo $image; ?>">
<div id="popup_interstitial_description"><?php echo $description; ?></div>
</div>
</div>
</div>
</div>
</div>
Den zugehörigen CSS-code ist:
#popup_interstitial_pro_head_text{
color:#FFF;
font-size: 2em;
font-weight: normal;
text-shadow: 0.05em 0.05em #666;
background-color: #A5CF4C;
width: 100%;
padding-left: 1%;
padding-top: 0.8%;
padding-bottom: 0.8%;
border-top-width: thin;
border-top-style: solid;
border-top-color: #648323;
border-bottom-width: thin;
border-bottom-style: solid;
border-bottom-color: #759928;
margin-bottom: 2%;
-webkit-box-shadow: 1px 1px 8px #333333;
-moz-box-shadow: 1px 1px 8px #333333;
khtml-box-shadow: 1px 1px 8px #333333;
filter: shadow(color=#333333, direction=135, strength=0);
}
#popup_interstitial {
display: none;
width: 100%;
height: 100%;
position: fixed;
background-color:#FFFFFF;
color:#111;
z-index:9999;
top:0;
left:0;
}
#popup_interstitial_table {
width: 50%;
margin: 0 auto 0 auto;
background-color:#E7E7E7;
padding: 1em 2.2em;
font: 0.85em "Trebuchet MS", Arial, Helvetica, sans-serif;
margin-top: 5%;
vertical-align: center;
}
#popup_interstitial_title{
color:#FFF;
font-size: 1.5em;
font-weight: bold;
padding: 0 0 0 0.3em;
border-bottom-width: thin;
border-bottom-style: solid;
border-bottom-color: #777;
background-color: #888;
border-radius: 0.3em;
}
#popup_interstitial_description{
padding-top: 1.7em;
padding-bottom: 1.2em;
border-bottom-width: thin;
border-bottom-style: solid;
border-bottom-color: #ccc;
line-height:1.5em;
}
#popup_interstitial_image{
vertical-align: baseline;
margin: 25px 20px 3px 0;
-webkit-box-shadow: 1px 1px 8px #333333;
-moz-box-shadow: 1px 1px 8px #333333;
khtml-box-shadow: 1px 1px 8px #333333;
filter: shadow(color=#333333, direction=135, strength=0);
padding: 4px;
margin-left: 6px;
float: left;
}
Dies ist das wichtigste:
#parent {position: relative;}
#child {
padding: 0% 0;
margin: 0 auto;
}
- Was, kein
margin: 0 auto;
? - das funktioniert, wenn Sie wollen center ist horizontal.
- Sie sind natürlich Recht; ich verwechselt die beiden.
- Eine von diesen: reisio.com/examples
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrer aktuellen Struktur, Sie haben zwei Lösungen, damit es funktioniert:
1) CSS
Wickeln Sie die Elemente mit einem div und verwenden Sie diesen trick:
Sehen diese arbeiten Geige Beispiel! (Wenn Sie verschieben Sie den Rahmen nach oben und nach unten, sehen Sie, dass das Ziel bleibt vertikal zentriert werden.)
Was hier geleistet wird, ist der wrapper-element für die Anzeige als Tabelle, besetzen die gesamte Breite und Höhe des übergeordneten Elements (
#parent
).Dann, können wir die
#child
für die Anzeige als Tabelle-Zelle und setzen Sie den Inhalt auf die vertikale ausrichten an der Mitte.Nun der trick, da die
#parent
enthält auch ein weiteres element, das Sie brauchen, um zu bleiben, aber seine Höhe entfernt vom "Zentrum" Berechnungen für die#popup_interstitial_table
wir ziehen das#popup_interstitial_table
mit einemmargin-top:-60px
fix seine position. Die negative Marge ist die Höhe, die#popup_interstitial_pro_head_text
belegt.Wichtiger Hinweis:
Da haben Sie diese Struktur, um zu passieren, um den browser-fix, Ihre
#popup_interstitial_pro_head_text
braucht, um zu arbeiten mit einem einzigen Gerät habe ich gewähltpx
für das Beispiel.Sie hatte eine Mischung von
%
undem
auf mehreren Erklärungen!On a side note:
Sie verwenden:
Sehen dieser link für weitere Informationen!
2) JQUERY
Mit jQuery, die Sie sammeln, können Sie den Raum besetzt durch die
#popup_interstitial_table
und berechnen die notwendigen Links und oben fix-Werte zu halten es vertikal zentriert:Sehen diese arbeiten Geige Beispiel! (Wenn Sie verschieben Sie den Rahmen nach oben und nach unten, sehen Sie, dass das Ziel bleibt vertikal zentriert werden.)
JQUERY
CSS
Um zu verhindern, dass massive Skript-Berechnungen, die CSS bekommen sollte behoben dieser:
So, eine Wiederholung, die ohne änderung Ihrer aktuellen Struktur, das sind die beiden Lösungen, die ich denken konnte, zu zentrieren Ihr element!
1) CSS
Lösung wie erwartet funktioniert, und danke für die anderen Tipps!Verwenden Sie dieses CSS:
Und fügen Sie Ihre anderen CSS.
Sehen Beispiel für die vertikale Zentrierung
und
CSS: Zentrierung Dinge.
display: table-cell
. "Zentrierung Dinge" nicht gut spielen im IE7/8Ich bin mir nicht bewusst, eine gute Möglichkeit, um das Zentrum ein element vertikal ohne mit Tabelle-Zellen. In diesem Fall ist es Recht einfach, aber Sie gehen zurück auf Tabellen basierende Layouts, die ich denke, Sie versuchen zu vermeiden.
Frage beantworten: Wie wichtig ist es für das element vertikal zentriert?
Andere Möglichkeit ist, javascript zu verwenden, um die Ränder am render-Zeit.
%
Ränder/padding, aber im moment habe ich noch nicht in der Lage zu replizieren.Hallo können Sie achive Ihr Ergebnis durch zwei einfache Schritte:-
einfach definieren, display:table-cell & vertical-align:middle, um Ihr diese id #popup_interstitial_table
finden Sie in der demo:- http://jsfiddle.net/D8LLM/34/