html css 图片居中

来源:互联网 发布:二十四节气壁纸软件 编辑:程序博客网 时间:2024/06/05 09:36

与其他一些display属性类似,table-cell同样会被其他一些CSS属性破坏,例如float, position:absolute,所以,在使用display:table-cell与float:left或是position:absolute属性尽量不用同用。设置了display:table-cell的元素对宽度高度敏感,对margin值无反应,响应padding属性,基本上就是活脱脱的一个td标签元素了

自己写的一个,图片上下居中需要建立两个div 最外侧div 需要引入 jz_out类  ,里面div需要引入 jz_in类即可,兼容 ie8,360等

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<!-- 图片上下居中需要建立两个div 最外侧div 需要引入 jz_out类  ,里面div需要引入 jz_in类即可,兼容 ie8,360等-->
<style >
.userinfo_editor {
position:absolute;
width: 1000px;
height: 800px;
border:ridge 1px red;
left: 0px;
top: 10px;
}
.jz_out{
    display: table;
}
.jz_in {
display: table-cell;
text-align: center;
vertical-align: middle;
background-color: #FFFFFF;


}
</style>
</head>
<body>
<div class="userinfo_editor jz_out">
    <div class="jz_in" href="#" target="_blank">
       <img src="http://img01.taobaocdn.com/tps/i1/T1LeeNXodaXXXXXXXX-130-150.png">sss</div>
    </div>
</div>
</body>
</html>


以下为网上搜的

方法一:利用定位

HTML结构如:

<div class="box">
    <a class="pic-wrap" href="#" target="_blank">
        <img src="http://img01.taobaocdn.com/tps/i1/T1LeeNXodaXXXXXXXX-130-150.png">
    </a>
</div>

 CSS代码如:

body {
    margin0;
    padding0;
    font12px/1.5 tahoma,arial;
}
.box {
    width220px;
    height220px;
    border1px solid #F30;
    margin100px auto 0;
    display: table;
}
.pic-wrap {
    displaytable-cell;
    text-aligncenter;
    vertical-alignmiddle;
}
/*主要针对IE6、7的hack*/
.box {
    *positionrelative;
}
.pic-wrap {
    *width100%;
    *positionabsolute;
    *top50%;
    *left0;
    /*继承自body的字体会影响到ie6,设置默认的windows系统字体*/
    _font-familysans-serif;
}
.pic-wrap img {
    *positionrelative;
    *top-50%;
    *left0;
    /*在ie中空文本节点有默认高度*/
    vertical-alignmiddle\9;
    /*在ie中,a标签中的img标签默认有蓝色边框*/
    bordernone\9;
}

方法二:

HTML结构同上,

CSS代码如:

.box {
    width220px;
    height220px;
    border1px solid #F30;
    margin100px auto 0;
}
.pic-wrap {
    displaytable-cell;
    vertical-alignmiddle;
    width220px;
    height220px;
    text-aligncenter;
    /*ie6、7不支持display:table-cell*/
    *displayblock;
    *font-size192px/*字体大小为height*0.783或者height/1.14,这里约为192px*/
    _font-familysans-serif/*设置字体,否则在ie6下会有一个像素的偏差*/
}
.pic-wrap img {
    bordernone;
    vertical-alignmiddle/*由于ie下空文本节点有默认高度,所以设置*/      
}

注意,当在css中设置了body元素字体的话,那么方法二在ie7下会失效的


最佳方法:

CSS代码如:

body {
    margin0;
    padding0;
    font12px/1.5 tahoma,arial;
}
.box {
    width220px;
    height220px;
    border1px solid #F30;
    margin100px auto 0;
}
.pic-wrap {
    displaytable-cell;
    vertical-alignmiddle;
    width220px;
    height220px;
    text-aligncenter;
    /*ie6、7不支持display:table-cell*/
    *displayblock;
    _font-size192px;
    +line-height220px/*设置ie7中空文本节点行高为220px*/
    _font-familysans-serif;
}
.pic-wrap img {
    bordernone;
    vertical-alignmiddle\9;/*由于ie中有默认高度的空文本节点*/
}


0 0