Genişliğe bağlı olarak yükseklik için çözüm gördüm: css height same as width. Veya burada: https://stackoverflow.com/a/6615994/2256981. Ama sorum bana ters geliyor.Genişlik yüksekliğine göre ayarlayın
Benim eleman: bunun için
<body>
<div id="square"></div>
</body>
Stil:
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. */
}
Senaryo, kare tutar:
window.onload = window.onresize = function (event) {
var mySquare = document.getElementById("square");
mySquare.style.width = mySquare.offsetHeight + 'px';
};
burada
Komple kodu: http://jsfiddle.net/je1h/hxkgfr9g/
soruaynı şeyi saf CSS'de yapmaktır. Komut dosyası yok.
Bunu css'de yapıp yapamayacağınızı bilmiyorum. Https://css-tricks.com/snippets/css/a-guide-to-flexbox/ adresini deneyebilirsiniz, ancak bunun size yardımcı olup olmayacağını bilmiyorum. – xdhmoore
Bu, aradığınız şeyi yapıyor mu? http://stackoverflow.com/questions/12899031/css-squares-on-resize – xdhmoore
Ayrıca, CSS'de birçok kez denemenin mümkün olmadığını düşünüyorum ... Dinamik mükemmel kareler tasarlamadan önce beklememiz gerekecek! Gördüğüm tek seçenek, aslında yazdığın gibi Javascript. – Sebastien