Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将浮动div保持在窗口调整的中心位置(jQuery/CSS)_Javascript_Jquery_Css_Html - Fatal编程技术网

Javascript 如何将浮动div保持在窗口调整的中心位置(jQuery/CSS)

Javascript 如何将浮动div保持在窗口调整的中心位置(jQuery/CSS),javascript,jquery,css,html,Javascript,Jquery,Css,Html,在调整浏览器窗口大小时,是否有方法(不绑定window.resize事件)强制浮动DIV重新居中 为了帮助解释,我认为伪代码应该是这样的: div.left = 50% - (div.width / 2) div.top = 50% - (div.height / 2) 更新 我的问题已经在下面得到了回答,我想发布我的任务的最终结果-一个jQuery扩展方法,允许您将任何块元素居中-希望它也能帮助其他人 jQuery.fn.center = function() { var conta

在调整浏览器窗口大小时,是否有方法(不绑定window.resize事件)强制浮动DIV重新居中

为了帮助解释,我认为伪代码应该是这样的:

div.left = 50% - (div.width / 2)
div.top = 50% - (div.height / 2)
更新

我的问题已经在下面得到了回答,我想发布我的任务的最终结果-一个jQuery扩展方法,允许您将任何块元素居中-希望它也能帮助其他人

jQuery.fn.center = function() {
    var container = $(window);
    var top = -this.height() / 2;
    var left = -this.width() / 2;
    return this.css('position', 'absolute').css({ 'margin-left': left + 'px', 'margin-top': top + 'px', 'left': '50%', 'top': '50%' });
}
用法:

$('#mydiv').center();

尝试水平和垂直居中。它有点旧,有一些缺陷,但您应该能够从中得出一些测试代码。

如果您有一个固定大小的div,使用CSS很容易:

.keepcentered {
    position:    absolute;
    left:        50%;        /* Start with top left in the center */
    top:         50%;
    width:       200px;      /* The fixed width... */
    height:      100px;      /* ...and height */
    margin-left: -100px;     /* Shift over half the width */
    margin-top:  -50px;      /* Shift up half the height */
    border: 1px solid black; /* Just for demo */
}

当然,问题是固定大小的元素并不理想。

最简单的方法是使用以下CSS代码:

#floating-div {
    width: 50%;
    border: 1px solid gray;
    margin: 0 auto;
}

上面CSS代码的关键行是“边距:0自动”;它告诉浏览器自动设置左/右边距以保持div在页面上居中,即使在调整浏览器窗口的大小时也是如此。

我认为如果不使用
滚动
事件,您也无法做到这一点……CSS将整个内容集中在窗口中,不在当前可见区域,您必须在滚动页面上垂直调整,这也是一个问题吗?但不能使其垂直居中。请设置宽度和高度,然后尝试边距:自动;超级明星,谢谢!我在下面发布的代码中使用了它(将代码作为注释发布根本不起作用)