我正在尝试使用jquery将一个项目添加到DOM。我希望它覆盖在所有其他内容的顶部(z-index)(已经设置了数百个z索引),并且它应该始终居中对齐。
在将此div 添加到 DOM 时,我将其"left"属性设置为 $(window).width()/2 - 971/2。 971 是我尝试添加的div 的宽度。这是它的 CSS
width: 971px;
height: 669px;
background-image: url(/path/to/image/);
position: absolute;
margin: 0px auto;
z-index: 2500;
问题是,调整浏览器大小后,div 不会保持居中。 我什至尝试过左边距:50% 和一些负左边距(以像素为单位)。如果我设置与"屏幕"相关的"left"属性,则仅当用户最大化浏览器窗口时,它才会居中。
用高 z 指数定位这个绝对定位的div 使其始终居中有什么好方法?
首先,margin: 0px auto;
足以水平居中div。因此,只需删除left
属性即可解决问题。
如果没有,因为您使用的是 jQuery,因此您可以控制 .resize()
事件 window
以再次修复外观。
例如
function resizeMyBox() {
//code to resize
}
$(function() {
resizeMyBox(); // Resize on DOM ready
});
$(window).resize(function() {
resizeMyBox(); //Resize again on every resize
});
#someId{
width: 971px;
height: 669px;
padding: 0;
border: 0;
margin-left:-486px; /* 971/2 */
margin-top:-335px; /* 669/2 */
position: fixed;
left: 50%;
top: 50%;
background-image: url(/path/to/image/);
z-index: 2500;
}
我知道你已经说过你试过这个 - 但这在以符合标准的模式运行的任何浏览器中一直对我有用(即使)它可能因不考虑边框或填充而被抛弃。下面是一个工作示例:http://jsfiddle.net/U3RrT/
我刚刚意识到这可能是因为您在它上面设置了一个具有不同position
属性的元素; 尝试position:fixed;
。