Wie kann ich ein HTML-Element, etwa div, in die Mitte eines Browserfensters (keine Seite, nicht Bildschirm) einfügen? Unabhängig von der Browserfenstergröße, der Bildschirmauflösung, dem Layout der Symbolleiste usw. Ich möchte, dass es sich in der Mitte des Browserfensters befindet.
Vielen Dank
Ich wunderte mich, dass niemand über Position = fixiert sagte. Es macht genau das, was ich seit 7 in allen "menschlichen" Browsern und IE gefragt habe und funktioniert.
Dazu müssen Sie die Größe des zu zentrierenden Elements kennen. Jede Messung reicht aus (d. H. Px, em, Prozent), muss jedoch eine feste Größe haben.
Die CSS wird wie folgt aussehen:
// Replace X and Y with a number and u with a unit. do calculations
// and remove parens
.centered_div {
width: Xu;
height: Yu;
position: absolute;
top: 50%;
left: 50%;
margin-left: -(X/2)u;
margin-top: -(Y/2)u;
}
Bearbeiten : Dies zentriert sich im Ansichtsfenster. Sie können im Browserfenster nur mit JavaScript zentrieren. Das könnte aber trotzdem gut genug sein, da Sie wahrscheinlich eine Popup-/Modal-Box anzeigen möchten.
div#wrapper {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
Dies ist vollständig mit nur CSS möglich - kein JavaScript erforderlich: Hier ist ein Beispiel
Hier ist der Quellcode hinter diesem Beispiel:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
<title>Dead Centre</title>
<style type="text/css" media="screen"><!--
body
{
color: white;
background-color: #003;
margin: 0px
}
#horizon
{
color: white;
background-color: transparent;
text-align: center;
position: absolute;
top: 50%;
left: 0px;
width: 100%;
height: 1px;
overflow: visible;
visibility: visible;
display: block
}
#content
{
font-family: Verdana, Geneva, Arial, sans-serif;
background-color: transparent;
margin-left: -125px;
position: absolute;
top: -35px;
left: 50%;
width: 250px;
height: 70px;
visibility: visible
}
.bodytext
{
font-size: 14px
}
.headline
{
font-weight: bold;
font-size: 24px
}
#footer
{
font-size: 11px;
font-family: Verdana, Geneva, Arial, sans-serif;
text-align: center;
position: absolute;
bottom: 0px;
left: 0px;
width: 100%;
height: 20px;
visibility: visible;
display: block
}
a:link, a:visited
{
color: #06f;
text-decoration: none
}
a:hover
{
color: red;
text-decoration: none
}
--></style>
</head>
<body>
<div id="horizon">
<div id="content">
<div class="bodytext">
This text is<br>
<span class="headline">DEAD CENTRE</span><br>
and stays there!</div>
</div>
</div>
<div id="footer">
<a href="http://www.wpdfd.com/editorial/thebox/deadcentre4.html">view construction</a></div>
</body>
</html>
Hier ist:
Und das Beispiel:
<!DOCTYPE html>
<html>
<head>
<title>HTML centering</title>
<style type="text/css">
<!--
html, body, #tbl_wrap { height: 100%; width: 100%; padding: 0; margin: 0; }
#td_wrap { vertical-align: middle; text-align: center; }
-->
</style>
</head>
<body>
<table id="tbl_wrap"><tbody><tr><td id="td_wrap">
<!-- START: Anything between these wrapper comment lines will be centered -->
<div style="border: 1px solid black; display: inline-block;">
This content will be centered.
</div>
<!-- END: Anything between these wrapper comment lines will be centered -->
</td></tr></tbody></table>
</body>
</html>
Schauen Sie sich die Original-URL für vollständige Informationen an: http://krustev.net/html_center_content.html
Sie können mit diesem Code machen, was Sie möchten. Die einzige Bedingung ist, dass jedes abgeleitete Werk einen Verweis auf den ursprünglichen Autor haben muss.
Wenn Sie die Größe des Browsers nicht kennen, können Sie den CSS-Code einfach mit folgendem Code zentrieren:
HTML Quelltext:
<div class="firstDiv">Some Text</div>
CSS-Code:
.firstDiv {
width: 500px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #F1F1F1;
}
Dies hilft auch bei unvorhergesehenen Änderungen in der Zukunft.
Ich hatte viele Probleme beim Zentrieren und Ausrichten, bis ich Flexbox als Empfehlung in einem Leitfaden fand.
Eine vollständige Anleitung zu Flexbox
Ich werde hier aus praktischen Gründen einen Ausschnitt (der mit Chrome funktioniert) posten:
<head>
<style type="text/css">
html
{
width: 100%;
height: 100%;
}
body
{
display: flex;
justify-content: center;
align-items: center;
}
</style>
</head>
<body>
This is text!
</body>
Weitere Einzelheiten finden Sie in dem Artikel.
Um ein Div zu zentrieren, sollten Sie den Stil anwenden
div
{
margin: 0 auto;
}
<div align="center">
oder
<div style="margin: 0 auto;">
Dies wird geprüft und funktioniert in allen Browsern.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
html, body { margin: 0; padding: 0; height: 100%; }
#outer {height: 100%; overflow: hidden; position: relative; width: 100%;}
#outer[id] {display: table; position: static;}
#middle {position: absolute; top: 50%; width: 100%; text-align: center;}
#middle[id] {display: table-cell; vertical-align: middle; position: static;}
#inner {position: relative; top: -50%; text-align: left;}
#inner {margin-left: auto; margin-right: auto;}
#inner {width: 300px; } /* this width should be the width of the box you want centered */
</style>
</head>
<body>
<div id="outer">
<div id="middle">
<div id="inner">
centered
</div>
</div>
</div>
</body>
</html>
Ich glaube nicht, dass du das kannst. Sie können sich in der Mitte des Dokuments befinden, kennen jedoch nicht das Layout der Symbolleiste oder die Größe der Browsersteuerelemente. Sie können also im Dokument zentrieren, jedoch nicht in der Mitte des Browserfensters.
Wenn ich Sie richtig verstanden habe, möchten Sie das Element vertikal und horizontal basierend auf dem Fenster und nicht dem Dokument zentrieren. Dies kann ein wenig schmerzhaft sein, aber Sie können Javascript verwenden, um die Fenstergröße, die Bildlaufposition, die Elementgröße usw. zu ermitteln und das Element dann in der Mitte des Fensters zu positionieren (nicht das Dokument, sondern das sichtbare Fenster).
Wenn Sie möchten, dass dieses Element beim Scrollen im Modul des Fensters verbleibt, müssen Sie das Scroll-Ereignis erfassen und die Position anpassen.
Der Code dafür ist von Browser zu Browser unterschiedlich.
Sie könnten ein JavaScript schreiben, um die Höhe und Breite des Fensters zu ermitteln und es zur Hälfte zu machen, um den Mittelpunkt zu finden.
Fügen Sie Ihre Sachen in einem Tag hinzu, und setzen Sie das div oben und links vom Javascript auf die Mittelpunktskoordinaten, die Sie mit Javascript gefunden haben.
Lassen Sie mich wissen, wenn Sie den Code benötigen.
Dies sollte mit div
oder Bildschirmgröße funktionieren:
.center-screen {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
min-height: 100vh;
}
<html>
<head>
</head>
<body>
<div class="center-screen">
I'm in the center
</div>
</body>
</html>
Weitere Details zu flex
hier . Dies sollte auf den meisten Browsern funktionieren, siehe Kompatibilitätsmatrix hier .
Hoffe das hilft. Der Trick besteht darin, die absolute Positionierung zu verwenden und die oberen und linken Spalten zu konfigurieren. Natürlich hängt der "Totpunkt" von der Größe des Objekts/Divs ab, das Sie einbetten, daher müssen Sie einige Arbeiten ausführen. Für ein Anmeldefenster habe ich Folgendes verwendet - es hat auch eine gewisse Sicherheit mit max-width und max-height, die Ihnen in Ihrem Beispiel tatsächlich nützlich sein könnte. Konfigurieren Sie die Werte unten für Ihre Anforderung.
div#wrapper {
border: 0;
width: 65%;
text-align: left;
position: absolute;
top: 20%;
left: 18%;
height: 50%;
min-width: 600px;
max-width: 800px;
}
Arbeitslösung.
<html>
<head>
<style type="text/css">
html
{
width: 100%;
height: 100%;
}
body
{
display: flex;
justify-content: center;
align-items: center;
}
</style>
</head>
<body>
Center aligned text.(horizontal and vertical side)
</body>
</html>
Für mich geht das :).
div.parent {
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
}