Heim >Web-Frontend >CSS-Tutorial >Eine kurze Diskussion darüber, wie ein Element in der Mitte seines übergeordneten Elements in CSS angezeigt wird
Das Problem, wie man ein Element in CSS vertikal zentriert, ist bereits eine häufige Frage. Ganz gleich, ob es sich um einen Neuling oder einen Veteranen handelt, diese Frage wird im Vorstellungsgespräch häufig gestellt. Ich habe mir vor zwei Tagen ein Flex-Video-Tutorial angesehen, in dem die Zentrierung von Elementen erwähnt wurde. Deshalb werde ich heute einen Blick auf einige gängige Methoden werfen. Bitte kritisieren und korrigieren Sie etwaige Mängel (alle Codes sind von mir selbst eingegeben und verfügbar)
1. Horizontale Zentrierung (Rand: 0 automatisch;)
Darüber sollte jeder der Beste sein sind damit nicht fremd, egal ob Sie in einem Schulungskurs sind oder alleine lernen. Dies sollte die erste Methode sein, die der Lehrer lehrt (horizontal), aber sie setzt voraus, dass die umhüllten Elemente keine schwebenden Attribute haben können. Andernfalls wird dieses Attribut ungültig. Konkret sieht der Code wie folgt aus:
<style> body{margin: 0;} .box{ width: 400px; height: 400px; border:1px solid red; } item{ margin:0 auto; width: 100px; height: 100x; background: green; } </style> <body> <p class="box"> <p class="item"></p> </p> </body>
<br>
2. Horizontale Zentrierung (Textausrichtung). : center;)
Wenn dieses Attribut nicht schwebend ist, können wir es in inline/inline-block konvertieren und dann das text-align:center-Attribut zu seinem übergeordneten Element hinzufügen, um es zu zentrieren
<style> body{margin: 0;} .box{ width: 400px; height: 400px; border:1px solid red; text-align:center; } item{ display:inline/inline-block; width: 100px; height: 100x; background: green; } </style> <body> <p class="box"> <p class="item"></p> </p> </body>
<style> body{margin: 0;} .box{ width: 400px; height: 400px; border:1px solid red; position: relative; } item{ position: absolute; top: 50%; left: 50%; margin-top: -50px; margin-left: -50px; width: 100px; height: 100x; background: green; }</style><body> <p class="box"> <p class="item"></p> </p></body>
<style> body{margin: 0;} .box{ width: 400px; height: 400px; border:1px solid red; position: relative; } item{ position: absolute; left: 0; right: 0; bottom: 0; top:0; margin: auto; width: 100px; height: 100x; background: green; }</style><body> <p class="box"> <p class="item"></p> </p></body>
<style> body{margin: 0;} .box{ width: 400px; height: 400px; border:1px solid red; display: table-cell; vertical-align: middle; } item{ margin:0 auto; width: 100px; height: 100x; background: green; }</style><body> <p class="box"> <p class="item"></p> </p></body>
<style> body{margin: 0;} .box{ width: 400px; height: 400px; border:1px solid red; position:relative; } item{ width: 100px; height: 100x; background: green; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); }</style><body> <p class="box"> <p class="item"></p> </p></body>
<style> body{margin: 0;} .box{ width: 400px; height: 400px; border:1px solid red; display: flex; justify-content: center; align-items: center; } item{ width: 100px; height: 100x; background: green; }</style><body> <p class="box"> <p class="item"></p> </p></body>