我正在尝试在用户点击按钮时显示提醒,但无法弄清楚如何水平居中提醒。我希望警报留在#main中。见this fiddle.
谢谢!
答案 0 :(得分:4)
确保#main的position
不是static
,然后将以下规则分配给警报:
position: absolute;
left: 50%;
top: 50%;
margin-left: -width;
margin-top: -height;
将width
和height
替换为正确的值。
答案 1 :(得分:3)
由于@Darkwater提出的css解决方案是正确的,前段时间我为jQuery创建了这个插件,它仍然使用CSS,因此它可以在多个对象上快速重用。
为jQuery创建一个名为 center
的新方法:
$.fn.center = function() {
this.css("position","absolute").css("z-index","5000")
.css("top","50%").css("left","50%")
.css("margin",(-(this.height()/2))+"px 0 0 "+(-(this.width()/2))+"px");
return this;
};
然后在div#message
:
.show()
)
$("#message").show().center();
div
将垂直和水平居中。
编辑:记得在方法center()
之后绑定方法show()
或类似方法使元素可见到DOM,因为据我所知,jQuery无法处理适当隐藏的元素。
答案 2 :(得分:2)
您的标记和CSS定位实际上是错误的,而不是position: fixed;
position: relative;
使用#main
position: absolute;
而#message
div
使用#main div
在div
关于计算部分,当您想要top: value (-)minus height
居中时,您需要div
的{{1}}将其垂直居中......
答案 3 :(得分:2)
#message{
display: none;
position: relative;
top: 50%;
text-align: center;
}