Da @web-tiki bereits einen Weg aufzeigt, wie man vh
/ vw
Ich brauche auch eine Möglichkeit, den Bildschirm zu zentrieren, hier ist ein Codeschnipsel für 9:16 Porträt.
.container {
width: 100vw;
height: calc(100vw * 16 / 9);
transform: translateY(calc((100vw * 16 / 9 - 100vh) / -2));
}
translateY
wird dieses Zentrum auf dem Bildschirm bleiben. calc(100vw * 16 / 9)
ist die erwartete Höhe für 9/16. (100vw * 16 / 9 - 100vh)
ist die Überlaufhöhe, also nach oben ziehen overflow height/2
wird es in der Mitte des Bildschirms gehalten.
Für Landschaft, und halten 16:9 zeigen Sie die Verwendung
.container {
width: 100vw;
height: calc(100vw * 9 / 16);
transform: translateY(calc((100vw * 9 / 16 - 100vh) / -2));
}
Das Verhältnis 9/16 ist einfach zu ändern, keine Notwendigkeit, vordefiniert 100:56.25
o 100:75
Wenn Sie zuerst die Höhe sicherstellen wollen, sollten Sie Breite und Höhe vertauschen, z. B. height:100vh;width: calc(100vh * 9 / 16)
für 9:16 Porträt.
Wenn Sie das Programm an eine andere Bildschirmgröße anpassen möchten, könnte es Sie auch interessieren
- Hintergrund-Größe abdecken/behalten
- Der obige Stil ist ähnlich wie "contain" und hängt vom Verhältnis Breite:Höhe ab.
- passendes Objekt
- Cover/Contain für Bild/Video-Tag
@media (orientation: portrait)
/ @media (orientation: landscape)
- Medienabfrage für
portrait
/ landscape
um das Verhältnis zu ändern.