Beste Methode jetzt : die aspect-ratio
Eigentum (2022)
div {
aspect-ratio : 1 / 1;
width:50%;
border:1px solid red;
}
<div>Aspect ratio : 1 / 1</div>
Andere Methode : verwenden. vw
Einheiten für eine responsive Höhe/Breite entsprechend der Viewport-Breite.
vw : 1/100stel der Breite des Ansichtsfensters. ( Quelle: MDN )
DEMO
HTML:
<div></div>
CSS für ein Seitenverhältnis von 1:1:
div{
width:80vw;
height:80vw; /* same as width */
}
Tabelle zur Berechnung der Höhe entsprechend dem gewünschten Seitenverhältnis und der Breite des Elements.
aspect ratio | multiply width by
-----------------------------------
1:1 | 1
1:3 | 3
4:3 | 0.75
16:9 | 0.5625
Diese Technik ermöglicht es Ihnen, :
- einen beliebigen Inhalt innerhalb des Elements einfügen, ohne
position:absolute;
- kein überflüssiges HTML-Markup (nur ein Element)
- Anpassung des Seitenverhältnisses der Elemente an die Höhe des Ansichtsfensters unter Verwendung von vh-Einheiten
- Sie können ein responsives Quadrat oder ein anderes Seitenverhältnis erstellen, das immer in den Viewport passt, je nach Höhe und Breite des Viewports (siehe diese Antwort : Reaktionsfähiges Quadrat entsprechend der Breite und Höhe des Ansichtsfensters oder dies Demo )
Diese Einheiten werden von IE9+ unterstützt, siehe canIuse für weitere Informationen