Ich sah Lösung für die Höhe abhängig von der Breite: css height same as width. Oder hier: https://stackoverflow.com/a/6615994/2256981. Aber meine Frage ist das Gegenteil.Breite entsprechend der Höhe einstellen
Mein Element:
<body>
<div id="square"></div>
</body>
Stil für sie:
body, html {
margin: 0;
height: 100%;
min-height: 300px;
position: relative;
}
div#square { /* My square. */
height: 75%; /* It's height depends on ancestor's height. */
width: 75vh; /* If supported, preliminarily sets it's width. */
position: absolute; /* Centers it. */
left: 50%; top: 50%; transform: translate(-50%, -50%);
background-color: darkorange; /* Makes it visible. */
}
Script, dass es Platz hält:
window.onload = window.onresize = function (event) {
var mySquare = document.getElementById("square");
mySquare.style.width = mySquare.offsetHeight + 'px';
};
komplette Code hier: http://jsfiddle.net/je1h/hxkgfr9g/
Die Frage ist das Gleiche in reinem CSS. Kein Skript.
Ich weiß nicht, ob Sie das in CSS tun können. Sie könnten versuchen, https://css-tricks.com/snippets/css/a-guide-to-flexbox/, aber ich weiß nicht, ob das Ihnen helfen wird. – xdhmoore
Funktioniert das, wonach Sie suchen? http://StackOverflow.com/Questions/12899031/Css-Squares-On-resize – xdhmoore
Ich denke auch, dass es in reinem CSS nicht möglich ist, versuchte viele Male ... Wir müssen warten, bevor wir dynamische perfekte Quadrate entwerfen! Die einzige Option, die ich sehe, ist Javascript, wie Sie es tatsächlich geschrieben haben. – Sebastien