中心DIV内容流体垂直和水平

The*_*Kid 3 html css xhtml margin fluid-layout

这是我的例子:

在此输入图像描述

线高不适用于流体div.我的代码目前基于行高,但框的大小会发生变化.那么如何才能在完全中间有一个链接(内容)呢?

我想确保这个DIV中的内容总是从顶部和侧面同样居中.垂直和水平居中.

当前代码:(注意样式标记为空白,因为这是动态填充的)

    <style type="text/css">
    .box{
    width:468px; /* php changes this sometimes */
    height:60px; /* php changes this sometimes */
    background:#eee;
    text-align:
    center;
    border:
    1px solid rgb(177, 172, 171);
    line-height: 61px;
    }
    </style>

    <div style="" class="box" id="">
<a style="color:#333;font-weight:bold" href="claimPrize();">Winner!</a>
</div>
Run Code Online (Sandbox Code Playgroud)

And*_*ich 10

遇到类似的情况不久以前,做了搜索,发现了大约从CSS-技巧绝对中心的文章,这里是文章,并伴随小提琴来测试它.

CSS

/* This parent can be any width and height */
.block {
  text-align: center;
}

/* The ghost, nudged to maintain perfect centering */
.block:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  margin-right: -0.25em; /* Adjusts for spacing */
}

/* The element to be centered, can
   also be of any width and height */
.centered {
  display: inline-block;
  vertical-align: middle;
  width: 300px;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<div class="block" style="height: 300px;">

    <div class="centered">
        <h1>Some text</h1>
        <p>But he stole up to us again, and suddenly clapping his hand on my shoulder, said&mdash;"Did ye see anything looking like men going towards that ship a while ago?"</p>
    </div>

</div>

<div class="block" style="height: 200px;">

    <div class="centered">
        <h1>Some text</h1>
        <p>But he stole up to us again, and suddenly clapping his hand on my shoulder, said&mdash;"Did ye see anything looking like men going towards that ship a while ago?"</p>
    </div>

</div>

<div class="block" style="height: 600px;">

    <div class="centered">
        <h1>Some text</h1>
        <p>But he stole up to us again, and suddenly clapping his hand on my shoulder, said&mdash;"Did ye see anything looking like men going towards that ship a while ago?"</p>
    </div>

</div>
Run Code Online (Sandbox Code Playgroud)

演示

http://jsfiddle.net/andresilich/YqKMH/

  • @TheBlackBenzKid由于使用`text-align:center`,div总是在容器的中间,无论宽度如何.至于支持,因为`:before`和`:after`的伪选择器被IE7松散支持,我会说支持是IE8 +,虽然你可以在IE7中得到它,但需要测试.我会说IE8 +对于非JS方法来说听起来很不错:P. (2认同)