CSS水平居中一个不确定宽度的区块

我们知道,如果要一个区块水平居中,最好的办法是设置其width,然后使用margin左右为auto,但是对于一个不确定宽度的区块,我们也想要水平居中该怎么办,其实可以设置其display为table,然后设置左右的margin为auto,不过ie6,7不支持display: table;除此之外我们还可以用css3的box-align和box-pack来实现,当然那更不兼容了

CSS:

.element{
  display: table;
  margin0 auto;
}

因为不兼容,我们得想一个兼容的办法啊,那就是直接用table来构造喽

<table class="centered-block">
    <tbody>
        <tr>
            <td>
                <div>我是需要水平居中的东西</div>
            </td>
        </tr>
    </tbody>
</table>
.centered-block{
  margin-leftauto !important;
  margin-rightauto !important;
}

此外 再介绍一段兼容各种浏览器的水平和垂直居中的CSS代码

兼容各种浏览器的水平和垂直居中的CSS代码,这段代码可以用于宽度和高度不固定的div

<figure class='logo'>
    <span></span>
    <img class='photo'/>
</figure>
.logo {
  displayblock;
  text-aligncenter;
  displayblock;
  text-aligncenter;
  vertical-alignmiddle;
  border4px solid #dddddd;
  padding4px;
  height74px;
  width74px; }
  .logo * {
    display: inline-block;
    height100%;
    vertical-alignmiddle; }
    .logo .photo {
    heightauto;
    widthauto;
    max-width100%;
    max-height100%; }
posted @ 2013-05-27 19:26  萌小孩  阅读(248)  评论(0编辑  收藏  举报