任何屏幕分辨率上的中心消息框

jer*_*mej 3 css styles center

请帮助我将消息框放在适合任何屏幕分辨率的中心..你能显示我可以使用的css或样式,边距,左边,右边吗?

and*_*dho 8

水平居中

要使div水平居中,您可以使用margin: auto auto; width: 500px宽度为您想要的任何宽度的位置.

JS小提琴

HTML:

<div id="content">
    Some content
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#content {
    width: 200px;
    margin: auto auto;
    background-color: #CCC;
}
Run Code Online (Sandbox Code Playgroud)

中心屏幕具有固定尺寸

如果你可以修复内容的高度和宽度,那么只需使用css就可以水平和垂直居中.这是通过将您的内容包装在另一个div中,然后定位内容div top: 50%,然后从其中减去其边距的一半来实现的:margin-top: -100px假设高度为200px.见下面的例子:

JS小提琴.

HTML:

<div id="wrapper">
    <div id="content">
        Some content
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#wrapper {
    position: relative;
    background-color: #EEE;
    width: 200px;
    height: 200px;
    font-size: 10px;
}
#content {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80px;
    height: 80px;
    margin-top: -40px;
    margin-left: -40px;
    background-color: #DDD;
}
Run Code Online (Sandbox Code Playgroud)

假装它垂直居中

此外,您可以在大多数台式机和笔记本电脑屏幕上使用固定margin-top(或top使用position: absolute)使其看起来垂直居中.

JS小提琴

HTML:

<div id="content">
    Some content
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#content {
    width: 200px;
    margin: 100px auto;
    background-color: #CCC;
}
Run Code Online (Sandbox Code Playgroud)

使用Javascript

仅使用css不可能以任意高度垂直居中内容.在这种情况下,您将需要使用Javascript来定位div:

基本思路是:

  • 您需要在显示内容时或内容加载时计算内容的高度.
  • 然后更改任何许多css属性以将div定位在垂直中心.

我个人的偏好是您使用position: absolutetop属性.您也可以使用,margin-top但如果您在页面上有其他内容,则可能不希望此div占用框模型中的空间.

JS小提琴

<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(function() {
    var windowWidth = document.documentElement.clientWidth;
    var windowHeight = document.documentElement.clientHeight;
    var el = $('#content');
    var elWidth = el.width();
    var elHeight = el.height();

    el.css({
        position: 'absolute',
        top: (windowHeight / 2) - (elHeight / 2),
        left: (windowWidth / 2) - (elWidth / 2),
    });
});
</script>
<style>
#content {
    width: 200px;
    height: 200px;
    background-color: #CCC;
}
</style>
</head>
<body>
<div id="content">
    Some content
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

使用任何可用的Javascript"插件"

Web上有许多CSS框架,它们提供我们在大多数网站上使用的样板CSS.其中一些也有助于解决这些小Javascript插件的常见问题.就个人而言,我知道Twitter Bootstrap提供了一个Modal插件,您可以将其用于此目的.还有许多jQuery插件,其唯一目的是将页面内容集中在一起.

结论

虽然有很多选项可以实现这一点,但我很遗憾看到CSS仍然不支持这样做.我不知道,在不同的场景中做这件事可能很难.从我上面提到的选项中,我认为Javascript选项是最通用的,并且具有当今的浏览器速度,以及没有人在浏览器上禁用Javascript的可能性,这将是最好的方法.

  • 你忘了`display:table-cell; vertical-align:middle`方法. (2认同)
  • 愚蠢的你如何拥有渐变和阴影和圆角(所有这些都是"时尚"),但不能做一些简单/核心像垂直对齐. (2认同)