自动调整Web应用程序的高度和宽度

时间:2011-12-25 18:03:51

标签: css aspect-ratio jsfiddle

我正在开发一个网络应用程序,我想自动调整三个div填充背景图像的div,以便在我使用ctrl-和+完全像{{3}放大或缩小时填充整个页面},这是我写的这个效果,但它失败了:

HTML:

<div id="three_columns_container">
     <div id="first-column">...</div>
     <div id="second-column">...</div>
     <div id="third-column">...</div>
</div>

CSS:

#first-column{
    background:('slice.png');
    width: 15%;
    height: 97%;
}
#second-column{
    background:('slice.png');
    width: 15%;
    height: 97%;
}
#third-column{
    background:('slice.png');
    width: 70%;
    height: 97%;
}

JS:

 $(window).resize(function(){
      $("#three_columns_container").height() = $(window).height * 0.97;
      $("#three_columns_container").width() = $(window).width* 0.97;
    });

这个链接可能有助于解决问题,但它没有产生确切的效果 jsfiddle.net

我想知道是否有人可以帮助我

2 个答案:

答案 0 :(得分:0)

表示可变宽度使用%age。并用于固定使用像素。还有什么不明白的。如果您要求背景图片也被重新启动,则必须为此编写js。

答案 1 :(得分:0)

我认为这是解决问题的方法:

<强> CSS

#firstColumn {
    width: 15%;
    height: 150px;
    background: #1e3340;
    float: left;
}
#secondColumn {
    width: 70%;
    height: 150px;
    background: #305a5e;
    float: left;    
}
#thirdColumn {
    width: 15%;
    height: 150px;
    background: #323e45;
    float: left;    
}

<强> HTML

<div id="three_columns_container">
     <div id="firstColumn">...</div>
     <div id="secondColumn">...</div>
     <div id="thirdColumn">...</div>
</div>

<强> JS

$(document).ready(function () {
    var divRatio = {};
    setRatio('firstColumn');
    setRatio('secondColumn');
    setRatio('thirdColumn');
    $(window).resize(function () {
        fixHeight('firstColumn');
        fixHeight('secondColumn');
        fixHeight('thirdColumn');
    });
    function setRatio(container) {
        var selector = '#' + container;
        divRatio[container] = $(selector).height() / $(selector).width();
    }
    function fixHeight(container) {
        var selector = '#' + container,
            ratio = divRatio[container],
            height = ratio * $(selector).width();
        $(selector).height(height);     
    }
});