将CSS宽高比设置为宽度的倒数?

时间:2013-04-10 05:59:48

标签: javascript jquery css

我在使用CSS布局时遇到了麻烦 - 关键部分是我想要一个随着宽度减小而增加高度的盒子。

现在,我开始使用元素上的'固定宽高比'技术 - 您将高度设置为0,将填充顶部设置为百分比,比如说50%。填充值计算为父元素的 width 的50%(而不是高度,正如您可能猜到的那样),因此您最终得到的是具有固定的2:1宽高比的框,但在其他方面是流动的。

下一步(在我的半生不熟的解决方案中)是修改填充百分比,使其随着宽度减小而增加(宽度为页面的100%)。我很确定这不会发生在直接的CSS中,并且我很满意在调整窗口大小时更新值的一小段Javascript。

任何人都可以帮助我使用公式来调整该百分比与宽度成反比吗?

其他几点说明:

  • 元素是'spacer' - 它将是不可见的,所以如果它需要两个元素等等,那就没问题。
  • 整个布局流畅,响应范围从2500 + px到320px,因此我们无法使用“最大值”(我不认为)。

提前致谢。

1 个答案:

答案 0 :(得分:2)

也许jQuery .resize()函数可能有帮助吗?它会在调整元素(或窗口)的大小时将函数绑定。

例如,如果您希望元素#el的面积始终为50,000像素平方

$(window).resize(function() {
    area = 50000;
    width = $('#el').width();
    $('#el').height(Math.ceil(area/width));
    });

工作示例:http://jsfiddle.net/asifrc/T8HrW/embedded/result/

示例代码:http://jsfiddle.net/asifrc/T8HrW/

jQuery .resize()文档:http://api.jquery.com/resize/

如果您正在寻找,请告诉我们。)