如何在{div>?</div>中水平和垂直居中<img/>

时间:2010-12-20 21:27:38

标签: css html web-standards

我不想以div为中心,我希望div的内容居中。我想要水平和垂直对齐。

很抱歉,如果这太容易或者其他什么,但这对于纠正它来说是一件麻烦事。

GRAE

我正在使用IE7

5 个答案:

答案 0 :(得分:2)

如果您知道图像的高度和宽度,请将其置于绝对位置,将上/左设置为50%,将上边距/上边距设置为图像高度/宽度的一半。< / p>

#foo {
    position:relative; /* Ensure that this is a positioned parent */
}
#foo img {
    width:240px;
    height:200px;
    position:absolute;
    left:50%;
    top:50%;
    margin-left:-120px;
    margin-top:-100px;
}

实例:http://jsfiddle.net/Zd2pz/

答案 1 :(得分:2)

我知道你已经说过不想以div为中心但是使用jquery插件和包含你的元素的假div来更容易以跨浏览器的方式实现你的需求。

我已经使用这个可以居中任何块元素的very small plugin成功地集中了几乎任何东西。

我知道的另一种方式是你已经从@simshaun&amp; @Prhogz

编辑:根据评论请求

将脚本包含在头标记中

<script type="text/javascript" src="<%: Url.Content( "~/_assets/js/jquery.center.min.js" )%>"></script>

现在,如果您有一个想要在标记中居中的DIV,只需将其用作

即可
$(document).ready(function() {
    $("#myDIV").center({ vertical: false });
});

答案 2 :(得分:1)

虽然以下是过时,但它仍适用于几乎所有浏览器

<center>
<div>
your html
</div>
</center>

然而,请访问此链接

http://www.110mb.com/forum/vertical-horizontal-alignment-of-image-within-div-t31709.0.html

答案 3 :(得分:0)

对于水平对齐,请使用text-align:center;

对于垂直对齐,请参阅例如W3 style guide

答案 4 :(得分:0)

如果您事先知道内部元素的高度,

CSS:

.container {
    text-align: center; /* Center horizontally. */

    /* For demo only */
    border: 1px solid #000;
    height: 500px;
    margin: 20px;
    width: 700px;
}

.container img {
    margin-top: -167px;
    position: relative;
    top: 50%;
}

HTML:

<div class="container">
    <img src="http://farm6.static.flickr.com/5004/5270561847_7223069d5e.jpg" width="500" height="334" alt="">
</div>

Example