最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442

CSS让元素垂直居中的两种实现方法

日期:03-30    来源:网页设计秀    作者:cnwebshow.com

网页制作cnwebshow文章简介:利用css让元素垂直居中是个很头疼的问题,这里就介绍两种简单实用的方法。
mf0中国设计秀

利用css让元素垂直居中是个很头疼的问题,这里就介绍两种简单实用的方法mf0中国设计秀
mf0中国设计秀
方法一:利用行高(line-height)定位mf0中国设计秀
mf0中国设计秀
line-height通常是用于调节一段文字的行与行之间的距离,或者说两行文字之间的距离,如果行高是500px,那么每一行中的文字距离本行的顶部就是250px,如果将文字的行高设为500px,并且外面的容器的高度也为500px,同样可以实现垂直居中,但是用它来实现垂直居中,也是有缺点的,就是如果内容过多,文字就会跑到下一行,那么内容就不可能垂直居中了。mf0中国设计秀
mf0中国设计秀
HTML代码:mf0中国设计秀

 <h1>Hi, I'm<span>Vertically Aligned</span> Within the H1</h1>mf0中国设计秀

css代码:mf0中国设计秀

body {mf0中国设计秀
 mf0中国设计秀
         margin: 0;mf0中国设计秀
 mf0中国设计秀
         padding: 0;mf0中国设计秀
 mf0中国设计秀
         background: #1d1d1d;mf0中国设计秀
 mf0中国设计秀
         font-size: 10px;mf0中国设计秀
 mf0中国设计秀
         font-family: Verdana, Arial, Helvetica, sans-serif;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
h1 {mf0中国设计秀
 mf0中国设计秀
         font: 3em Georgia, "Times New Roman", Times, serif;mf0中国设计秀
 mf0中国设计秀
         color: #fff;mf0中国设计秀
 mf0中国设计秀
         height: 500px;mf0中国设计秀
 mf0中国设计秀
         line-height: 500px;mf0中国设计秀
 mf0中国设计秀
         text-align:center;mf0中国设计秀
 mf0中国设计秀
         border: 10px solid #999;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
h1 span {mf0中国设计秀
 mf0中国设计秀
         font-weight: bold;mf0中国设计秀
 mf0中国设计秀
         font-size:1.5em;mf0中国设计秀
 mf0中国设计秀
         color: #fff000;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
p {mf0中国设计秀
 mf0中国设计秀
         font-size: 1.3em;mf0中国设计秀
 mf0中国设计秀
         color: #999;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
strong {mf0中国设计秀
 mf0中国设计秀
         color: #fff;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀

方法二:利用绝对定位mf0中国设计秀
mf0中国设计秀
先来看看效果,查看演示mf0中国设计秀
这个方法有个缺点我必须指出,就是外面的块状元素,必须指定高度,所以如果你在里面放动态的内容的话,后果会很糟糕滴~mf0中国设计秀
mf0中国设计秀
HTML代码:mf0中国设计秀

<div class="vert">mf0中国设计秀
 mf0中国设计秀
        <h1>Hi, I'm<span>Vertically Aligned</span></h1>mf0中国设计秀
 mf0中国设计秀
        <p>Abigo sudo mara paulatim odio, accumsan luptatum nibh nibh refero metuo opes ut fatua. Acsi et fere similis <strong>Using</strong> augue <strong>absolute</strong> validus. Regula <strong>positioning</strong> eu jus vel, indoles fere iaceo ea similis. Velit praemitto nulla vel luctus secundum. </p>mf0中国设计秀
 mf0中国设计秀
</div>mf0中国设计秀

css代码:mf0中国设计秀
这种用绝对定位来实现的垂直居中,取决与元素的宽度和高度,你可以用下面这两个公式来计算元素的左边距和上边距mf0中国设计秀
mf0中国设计秀
元素的宽度/2 = 负左边距mf0中国设计秀
元素的高度/2 = 负上边距mf0中国设计秀
mf0中国设计秀
在这个例子中,我们就是这么计算的mf0中国设计秀

.vert {mf0中国设计秀
 mf0中国设计秀
        width: 580px;mf0中国设计秀
 mf0中国设计秀
        height: 190px;mf0中国设计秀
 mf0中国设计秀
        position: absolute;mf0中国设计秀
 mf0中国设计秀
        top: 50%;mf0中国设计秀
 mf0中国设计秀
        left: 50%;mf0中国设计秀
 mf0中国设计秀
        margin: -95px 0 0 -290px;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀

完整css代码mf0中国设计秀

body {mf0中国设计秀
 mf0中国设计秀
        margin: 0;mf0中国设计秀
 mf0中国设计秀
        padding: 0;mf0中国设计秀
 mf0中国设计秀
        background: #1d1d1d;mf0中国设计秀
 mf0中国设计秀
        font-size: 10px;mf0中国设计秀
 mf0中国设计秀
        font-family: Verdana, Arial, Helvetica, sans-serif;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
h1 {mf0中国设计秀
 mf0中国设计秀
        font: 4em Georgia, "Times New Roman", Times, serif;mf0中国设计秀
 mf0中国设计秀
        color: #fff;mf0中国设计秀
 mf0中国设计秀
        border-bottom: 5px dotted #999;mf0中国设计秀
 mf0中国设计秀
        margin: 0;mf0中国设计秀
 mf0中国设计秀
        padding: 0 0 10px;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
h1 span {mf0中国设计秀
 mf0中国设计秀
        font-weight: bold;mf0中国设计秀
 mf0中国设计秀
        display:block;mf0中国设计秀
 mf0中国设计秀
        font-size:1.5em;mf0中国设计秀
 mf0中国设计秀
        color: #fff000;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
p {mf0中国设计秀
 mf0中国设计秀
        font-size: 1.3em;mf0中国设计秀
 mf0中国设计秀
        color: #999;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
strong {mf0中国设计秀
 mf0中国设计秀
        color: #fff;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀
 mf0中国设计秀
.vert {mf0中国设计秀
 mf0中国设计秀
        width: 580px;mf0中国设计秀
 mf0中国设计秀
        height: 190px;mf0中国设计秀
 mf0中国设计秀
        position: absolute;mf0中国设计秀
 mf0中国设计秀
        top: 50%;mf0中国设计秀
 mf0中国设计秀
        left: 50%;mf0中国设计秀
 mf0中国设计秀
        margin: -95px 0 0 -290px;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀

问题延伸mf0中国设计秀
mf0中国设计秀
如果元素的外面还有一个父级元素,如果才能让元素垂直居中于父级元素内部?比如下面的代码,多了一个父级元素mf0中国设计秀

<div class="container">mf0中国设计秀
 mf0中国设计秀
         <div class="vert">mf0中国设计秀
 mf0中国设计秀
          <h1>Hi, I'm Nested &<span>Vertically Aligned</span></h1>mf0中国设计秀
 mf0中国设计秀
          <p>Abigo sudo mara paulatim odio, accumsan luptatum nibh nibh refero metuo opes ut fatua. Acsi et fere similis <strong>Using</strong> augue <strong>absolute</strong> validus. Regula <strong>positioning</strong> eu jus vel, indoles fere iaceo ea similis. Velit praemitto nulla vel luctus secundum. </p>mf0中国设计秀
 mf0中国设计秀
         </div>mf0中国设计秀
 mf0中国设计秀
</div>mf0中国设计秀

这时候,就必须在定义父级元素的css代码中加入position: relative;才能够使内部元素垂直居中于父级内部,代码如下:mf0中国设计秀

.container {mf0中国设计秀
 mf0中国设计秀
        position: relative;mf0中国设计秀
 mf0中国设计秀
        height: 500px;mf0中国设计秀
 mf0中国设计秀
        width: 800px;mf0中国设计秀
 mf0中国设计秀
        border: 10px solid #999;mf0中国设计秀
 mf0中国设计秀
        background: #000;mf0中国设计秀
 mf0中国设计秀
        margin: 20px;mf0中国设计秀
 mf0中国设计秀
}mf0中国设计秀