【发布时间】:2014-09-16 01:01:21
【问题描述】:
以下代码附于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";
}
谢谢!
【问题讨论】:
-
@web-tiki 这是最接近的,如果没有发现的话:stackoverflow.com/questions/20590239/… 谢谢!
-
@web-tiki 缺少一件事。字体大小重新计算。
标签: css aspect-ratio