图片文字垂直居中的最好方法 |
时间: 2008-1-11 15:21:22 浏览:3568 |
图片文字垂直居中的最好方法 display:table-cell; 以表格单元格的形式显示对象 */ vertical-align:middle;/* 内容以对象中部对齐*/ display: inline-block; inline-block的元素既可以像块元素一样定义宽高,又可以和内联元素排列在一行 */ 若不理解,请深入了解上述3个属性的含义.valign针对ie,设置valign的宽高可帮助理解.(此句老手跳过) 方法1转自蓝色论坛,由mask2012发表 |
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>完美的水平垂直居中!!--兼容ie6,ie7,ff,opera,safari的水平垂直居中</title>
<style media="screen" type="text/css">
.wrapper{ width:700px; height:400px; background:#ccc; border:1px #000 solid;}
.holder{width:500px; height:200px; display:table; position:relative; margin:12px auto; border:1px solid #596480; background:#ffc;}
.holder div{*position:absolute; top:50%; left:0; display:table-cell; vertical-align:middle; width:100%;}
.holder p{position: relative; top:-50%; text-align:center; margin:0; padding:0;}
/*
分两套看
holder的 display:table
holder div的 display:table-cell; vertical-align:middle;
就可以实现在ff,safari和opera下的垂直居中,但是对ie系列无效
holder的 position:relative;
holder div的 *position:absolute; top:50%; left:0;
.holder p的 position: relative; top:-50%;
通过控制绝对层的位置实现ie6,7下的垂直居中
holder div中的*position:absolute是只给ie6和7看的css hack
对于水平居中要说的是如果holder div的width如果未指明100%,在ie7中它是不会自动延伸100%的,也就无法实现水平居中
*/
</style>
</head>
<body>
<div class="wrapper">
<div class="holder">
<div><p><img src="http://bbs.blueidea.com/images/blue/logo.gif" /></p></div>
</div>
<div style="line-height:40px; background:#006633; font-size:14px; color:#FFFFFF; font-weight:bold; text-align:center;">
以上的图片垂直并且水平居中,您可以改变holder的height和width进行测试</div>
</div>
</body>
</html>
方法2,只测试了IE和FF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>文字的垂直居中</title>
<!-- display:table-cell; 以表格单元格的形式显示对象 */
vertical-align:middle;/* 内容以对象中部对齐*/
display: inline-block;
inline-block的元素既可以像块元素一样定义宽高,又可以和内联元素排列在一行 */
-->
<style type="text/css">
<!--
body{ text-align:center; }
.wrap{ width:100%; display:table;}
.center{height:200px;display: table-cell; vertical-align:middle;background:#708090;}
.valign{ width:0; display: inline-block; vertical-align: middle; height:100%;}
-->
</style>
</head>
<body>
<div class="wrap">
<div class="center">
<span class="valign"></span>
center
</div></div>
</body>
</html>