这是一个优雅的解决方案,可以按比例缩放和居中整个网站以适合浏览器窗口(并在调整大小时进行更新)

假设基本布局为720x500px

内容应按比例缩放以适合,然后重新居中。

本质上,像这样的Flash插件进行操作:http://site-old.greensock.com/autofitarea/(尽管已知基本大小)

网站将在720x500区域中包含几种不同类型的元素...理想的解决方案将只是缩放整个内容,而无需对每个元素进行样式设置(以防万一,图像将是SVG,因此缩放不应对SVG解析度)

最佳答案

根据您需要支持的浏览器(IE9 +),可以使用简单的CSS transform来实现。

查看this jsfiddle中的示例

var $win = $(window);
var $lay = $('#layout');
var baseSize = {
    w: 720,
    h: 500
}

function updateScale() {

    var ww = $win.width();
    var wh = $win.height();
    var newScale = 1;

    // compare ratios
    if(ww/wh < baseSize.w/baseSize.h) { // tall ratio
        newScale = ww / baseSize.w;
    } else { // wide ratio
        newScale = wh / baseSize.h;
    }

    $lay.css('transform', 'scale(' + newScale + ',' +  newScale + ')');

    console.log(newScale);
}

$(window).resize(updateScale);

如果需要向后兼容,则可以使用%em调整网站中所有内容的大小,并使用类似的javascript来控制缩放比例。我认为那将非常费力。

09-10 17:47