我正在使用此方法将屏幕上的框居中:

#container {
        position:fixed;
        width:100%;
        height:100%;
        top:50%;
        left:50%;
        margin-top:-50%;
        margin-left:-50%;
        -webkit-transform: scale(0.8);
        -ms-transform: scale(0.8);
        -o-transform: scale(0.8);
        transform: scale(0.8);
    }


(我需要扩展某些功能)

它可以在Safari中使用,但在Chrome和Firefox中无法进行垂直对齐。有没有类似的方法可以跨浏览器使用?

最佳答案

这是我解决的方法:

我通过jQuery重新编写了100%的框大小。将特定尺寸设置为该框后,它似乎可以在FF和Chrome中使用。

当页面首次加载时,我通过仅在需要时动态应用转换来解决不必要的转换。 ...除非有更清洁的方法来完成转换的回叫?

样本:https://dl.dropboxusercontent.com/u/7782299/sample/zoom2.html

这是完整的代码:

<!DOCTYPE html>

<html lang="en">
<head>

    <link rel="stylesheet" href="support/CSSreset.css" type="text/css" charset="utf-8">

    <style>

    body {
        background:red;
        overflow:hidden;
    }

    #container {
        position:fixed;
        top:50%;
        left:50%;
        background:blue;
        -webkit-transform: scale(0.8);
        -moz-transform: scale(0.8);
    }
        #container.preon {
            -webkit-transition: all 0.5s ease-in-out;
            -moz-transition: all 0.5s ease-in-out;
        }

        #container.on {
            -webkit-transform: scale(1);
            -moz-transform: scale(1);
        }

    </style>

    <script src="support/jquery-2.0.3.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">

    $(document).ready( function() {

        $('#container').click(function() {

            $('#container').addClass('preon');
            $('#container').toggleClass('on');
            setTimeout( function() { $('#container').removeClass('preon'); }, 600);

        });

        placeContainer = function placeContainer() {

            $('#container').css({
                width: $(window).width() + "px",
                height: $(window).height() + "px",
                marginLeft: (($(window).width())/2)*-1,
                marginTop: (($(window).height())/2)*-1
            });

        };

        placeContainer();

    });

    $(window).resize(function() {

        placeContainer();

    });

    $(window).trigger('resize');

    </script>


</head>
<body>

    <div id="container"></div>

</body>
</html>

关于css - 跨浏览器居中与缩放元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19966502/

10-12 00:09