使用CSS将图像居中整页

时间:2015-01-06 07:04:08

标签: html css

我已经结合了一些关于图像居中的答案,因此它可以在完整的HTML页面上运行。

    .image-center {
        vertical-align: middle;
        margin: 1em 0;
    }
    
    .helper {
        display: inline-block;
        height: 100%;
        vertical-align: middle;
    }
    
    .vert-center {
    	min-height: 10em;
    	vertical-align: middle;
    	height: 100%;
    }
    
    .horz-center {
    	text-align: center;
    }
    
    html, body {
    	height: 100%;
    }
<body>
     	<div class="vert-center horz-center">
     		<span class="helper"></span>
    		<img src="img/image.gif" class="image-center" />
    	</div>
    </body>

这样,图像将垂直居中,因为它的容器位于页面的100%高度。这通常是图像本身不垂直居中的方式。

希望对你们有所帮助。

1 个答案:

答案 0 :(得分:1)

或者,你可以避免这么多'糟糕'的css样式约定,并采取类似下面的内容,正如其他数以千计的SO问题所述。


选项1

html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    display: table;
}
.container {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}
.content {
    display: inline-block;
    text-align: left;
    
}
<div class="container">
    <div class="content">
      <img src="http://placekitten.com/g/200/300" alt="" />
    </div>
</div>

选项2

.parent {
    display: table;
    height: 300px;
    background: yellow; 
    width:300px;
}
.child {
    
    display: table-cell;
    vertical-align: middle;
    text-align:center;

}
<div class="parent">
    <div class="child">
      	<div class="content">XXX</div>
    </div>
</div>

选项3

#outer {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      text-align:center;
    }
    #inner {
      width: 50%;
      height: 50%;
      top: 25%;
      margin: 0 auto;
      position: relative;
      background: orange;
    }
<div id=outer>
    <img id=inner src="http://placekitten.com/g/200/300" alt=""/>
  </div>

选项4

如果您知道图像(和div)的大小,则可以应用以下边距:

.container {
  height: 300px;
  width: 300px;
  background: #eee;
  position: absolute;
   
  margin: -150px 0 0 -150px;
  left: 50%;
  top: 50%;
}
 
.box {
  height: 100px;
  width: 100px;
  background: #222;
  position: absolute;
   
  /*Centering Method 2*/
  margin: -50px 0 0 -50px;
  left: 50%;
  top: 50%;
}
<div class="container">
   <div class="box"></div>
</div>

选项5

居中文本在css中也是轻而易举的

.container {
  height: 200px; /*Set line-height to this value*/
  width: 400px;
  background: #eee;
  margin: 150px auto;
}
 
h1 {
  font: 40px/200px Helvetica, sans-serif;
  text-align: center;
}
<div class="container">
  <h1>I'm centered!</h1>
  </div>

选项6(IMO最好)

使用背景图像定位

.container {
  height: 300px;
  width: 300px;
  margin: 150px auto;
  background: #eee url(http://lorempixum.com/100/100/nature/4) no-repeat center;
}
<div class="container"></div>


因此,正如您所看到的,只需几行代码就可以实现这一目标。