Ich verstehe, dass diese Frage bereits ein paar Antworten hat, aber ich habe nie eine Lösung gefunden, die in fast allen Klassen funktionieren würde, die auch Sinn macht und elegant ist, so hier ist meine nehmen nach zwicken ein Bündel:
.container {
position: relative;
}
.container .cat-link {
position: absolute;
left: 50%;
top: 50%;
transform: translate3d(-50%,-50%,0);
z-index: 100;
text-transform: uppercase; /* Forces CSS to treat this as text, not a texture, so no more blurry bugs */
background-color: white;
}
.color-block {
height: 250px;
width: 100%;
background-color: green;
}
<div class="container">
<a class="cat-link" href="">Category</a>
<div class="color-block"></div>
</div>
Es heißt: "Gib mir eine top: 50%
und eine left: 50%
dann transformieren (Raum schaffen) auf der X/Y-Achse in die -50%
Wert, in gewissem Sinne "einen Spiegelraum schaffen".
Auf diese Weise entsteht an allen vier Punkten eines Divs, das immer ein Kasten ist (vier Seiten hat), der gleiche Raum.
Dies wird:
- Arbeiten Sie, ohne die Höhe/Breite des Elternteils kennen zu müssen.
- Arbeiten Sie an responsive.
- Arbeiten Sie entweder auf der X- oder der Y-Achse. Oder beides, wie in meinem Beispiel.
- Ich kann mir keine Situation vorstellen, in der das nicht funktionieren würde.
4 Stimmen
Sie haben ein Beispiel in Beispiele für den absoluten Mittelpunkt die in verschiedenen Situationen verallgemeinert werden können.
2 Stimmen
Eine bessere Antwort auf diese Frage finden Sie unter stackoverflow.com/questions/17976995/
0 Stimmen
Ich glaube, einige von uns Oldies müssen sich mit Flex