Ich versuche, ein Div für meine Zielseite meines Website-Centers in der Mitte des Bildschirms zu erstellen, aber es funktioniert nicht.
Hier ist mein Code
CSS:
.centerDiv{
width:800px;
margin:0 auto;
border-radius: 5px;
background:#111;
padding:10px;}
HTML:
<div id="centerDiv" class="centerDiv">
<h1>Title</h1>
<p>Text will go here.</p>
</div>
Vielen Dank.
Hinweis: Wenn Sie versuchen, ein Div horizontal und vertikal zu zentrieren, würde ich vorschlagen, in flexbox zu suchen. Sie müssen weiterhin Fallback-Support bereitstellen, aber Flexbox ist die Zukunft und es ist erstaunlich.
Update: Flexbox wird von allen modernen Browsern now unterstützt.
Sie müssen dem div zuerst eine statische Breite und Höhe geben.
Zweitens müssen Sie position: absolute;
und left: 50%; top: 50%;
einstellen, dann müssen Sie einen margin-left
und margin-top
machen, die HALF von Höhe und Breite sind. Es wird dann korrekt angezeigt.
CSS:
.centerDiv{
width: 800px;
border-radius: 5px;
background: #ccc;
padding: 10px;
height: 50px;
position: absolute;
margin-top: -25px;
margin-left: -400px;
top: 50%;
left: 50%;
}
P.S. Ich habe dein Styling ein wenig geändert, damit du den Text tatsächlich lesen kannst. Hoffe das hilft!
Dieser Code ( demo ) ermöglicht das Festlegen von width
und height
, ohne dass andere Eigenschaften aktualisiert werden müssen (z. B. top
= height / 2
) oder auf nicht gut unterstützte Techniken angewiesen ist (z. B. display:table;
) Es fehlt die Unterstützung für ältere IE - Versionen. Die Kombination mit einer anderen Lösung nur für IE ist wahrscheinlich die beste Wahl.
Das CSS:
.absoluteCenter {
/* Must manually set width/height */
width:800px;
height:500px;
/* The magic centering code */
margin:auto;
position:absolute;
top:0;bottom:0; /* Aligns Vertically - Remove for Horizontal Only */
left:0;right:0; /* Aligns Horizontally - Remove for Vertical Only */
/* Prevent div from overflowing main window */
max-width:100%;
max-height:100%;
overflow:auto;
}
/* IE 7 and Below */
:first-child+html .absoluteCenter,
* html .absoluteCenter {
/* Place code here to override all above values, and add IE friendly centering */
}
Und das HTML:
<div class="absoluteCenter">
Content of DIV
</div>
Was Sie suchen, ist display:table
und display:table-cell
. Diese Option sollte das #center-Element im #parent-Element unabhängig von der Höhe des #center-Elements vertikal ausrichten. Ich glaube jedoch, dass Sie eine Höhe für das #parent -Element benötigen.
HTML
<div id="parent">
<div id="center">
<h1>Title</h1>
<p>Text will go here.</p>
</div>
</div>
CSS
#parent{
display: table;
width: /* Your width */;
height: /* Your height */;
}
#center{
position: relative;
display: table-cell;
width: /* Your width */;
height: /* Your height */;
vertical-align: middle;
margin: 0 auto;
}
Ich habe dies gestern erst verwendet, und display:table
für die body
verwendet. Diese Technik sollte bis IE8 kompatibel sein.
Versuche Folgendes:
.centerDiv{
position: absolute;
top: 50%;
height: 400px;
margin-top: -200px; /* Half of the height */
left: 50%;
width:800px;
margin-left: -400px; /* Half of the width */
border-radius: 5px;
background:#111;
padding:10px;
}
setzen Sie den Rand auf "auto" und nicht auf "0". Ich denke 100% für Ihren Zweck.