我目前正在开发HTML / CSS / Javascript。我有一个名为message的div id和一个显示消息的javascript函数,经过这么多秒后调用另一个函数来隐藏它。
除了第一次调用showMessage函数时,消息div被略微向右推(非常明显不在屏幕中央),然后在5秒后hideMessage运行并隐藏div消息。
如果我再次调用showMessage函数,则div在屏幕中间正确居中。
id消息的css只有display: none;
。
下面是showMessage函数在显示div之前添加的messageError类的css。
.messageError
{
position: absolute;
top: -48px;
width: auto;
margin-left: auto;
margin-right: auto;
text-align: center;
background-color: #ff3d3d;
border: #c10000 solid thin;
border-radius: 5px;
color: white;
font-weight: bold;
}
以下是javascript使用的代码
function showMessage(persistent, message, type)
{
$('#message').css({
position:'absolute',
padding: '10px',
left: ($(window).width() - $('#message').outerWidth())/2
});
$("#message")
.hide()
.html(message);
if (type == "error")
{
$("#message").addClass("messageError");
}
else if (type == "workingComplete")
{
$("#message").addClass("messageWorkingComplete");
}
$("#message").fadeIn("slow");
if (!persistent)
{
setTimeout("hideMessage()", 5000);
}
}
function hideMessage()
{
$("#message")
.fadeOut("slow");
removeClass("messageError")
.removeClass("messageWorkingComplete")
}
我怎样才能让div第一次处于中间而不需要关闭并重新加载以使其显示在中间。
感谢您提供的任何帮助。
答案 0 :(得分:0)
通常,我不喜欢使用:
width:auto;
如果你试图以div为中心。 指定宽度,
margin:0 auto;
可以做到这一点。 还注意到你指定了一个css未发布在你的问题上的课程。这也可能是问题所在。 如果你使用chrome,一旦你查看结果,右键单击它然后使用“inspect”元素。这将打开检查员并向您展示所有css(以及其他非常有用的东西),它们可以指导您解决问题所在。 问候 路易斯