下面的代碼附加到window.onresize = resize;
。在加載時讀取baseWidth
和baseHeight
作爲計算的基礎。 main
變量是通過將其設置爲主html節點來定義的。字體在塊元素上設置,以使其中的所有基於em
的元素以實物方式調整大小。當瀏覽器的寬度或高度改變時,重新計算比率。請參閱演示,瞭解我用JS實現的目標,但希望找到純粹的CSS解決方案:http://codepen.io/anon/pen/nLauF根據瀏覽器的高度和寬度保持縱橫比和字體大小?
我一直在探索CSS3中的選項,例如calc
。隨意也建議任何改善下面的JS也。
function resize() {
var height = 0,
width = 0;
if(window.innerWidth <= window.innerHeight) {
size = window.innerWidth/baseWidth;
height = baseHeight * size;
width = window.innerWidth;
} else {
size = window.innerHeight/baseHeight;
height = window.innerHeight;
width = baseWidth * size;
}
if(baseWidth * size > window.innerWidth) {
size = window.innerWidth/baseWidth;
height = baseHeight * size;
width = window.innerWidth;
}
main.style.height = height + "px";
main.style.width = width + "px";
main.style.fontSize = size * 16 + "px";
}
謝謝!
可能重複的[高度等於動態寬度(CSS流體佈局)](HTTP ://stackoverflow.com/questions/5445491/height-equal-to-dynamic-width-css-fluid-layout) – GentlePurpleRain 2014-09-10 15:00:39
也是這個問題:http://stackoverflow.com/questions/1495407/css -a-way-to-maintain-aspect-ratio-when-resizing-a-div/23673392 and this one:http://stackoverflow.com/questions/20590239/maintain-aspect-ratio-of-div-but-填充屏幕寬度和高度在css – 2014-09-10 15:31:49
@ web-tiki這是最接近的,如果不是現貨:http://stackoverflow.com/questions/20590239/maintain-aspect-ratio-of- div-but-fill-screen-width-and-height-in-css謝謝! – ClearBucket 2014-09-10 18:55:42