如何将响应式图像居中

时间:2014-06-02 09:00:55

标签: css image twitter-bootstrap responsive-design

我无法弄清楚如何制作响应式图像,同时使图像居中,无论是在手机上还是在具有更宽分辨率的计算机上观看。

我正在使用css类.img-responsive,但总是将图像左对齐。我检查了该类设置的字段,但无法找到如何组合不同的样式,以便图像响应并同时居中。

这是一个简单的图片,包含在divarticle指定的row-fluid类中。

6 个答案:

答案 0 :(得分:1)

这就是你想要的。 responsive image demo

<img src="http://lorempixel.com/600/450/" class="ri" />

img.ri
{
    position: absolute;
    max-width: 80%;
    top: 10%;
    left: 10%;
    border-radius: 3px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.9);
}

img.ri:empty
{
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

@media screen and (orientation: portrait) {
  img.ri {
      max-width: 90%;
  }
}

@media screen and (orientation: landscape) {
  img.ri {
      max-height: 90%;
  }
}

您可以使用@media和其他格式设置属性。

Here是一个教程。

或者您也可以尝试:

img { 
     max-width:100%; max-height:100%; margin:auto; 
}

答案 1 :(得分:1)

试试这个。将margin-left和margin-right应用于auto将解决您的问题。

<style>
.center
{
margin-left:auto;
margin-right:auto;
}
</style>

<div class="col-md-3 col-sm-3 col-xs-3">
<img class="img-responsive center"/>
</div>

答案 2 :(得分:1)

这个 CSS 会这样做:

.img-responsive {
    position: relative;
    left: 50%;
    transform: translate(-50%, 0);
    -ms-transform: translate(-50%, 0);
    -webkit-transform: translate(-50%, 0);
}

注意:在IE中它仅适用于9 +

答案 3 :(得分:1)

我不会使用position: absolute,因为它会从布局上下文中移除它,这意味着它很可能不会在您希望的位置。相反,试试这个:

<强> HTML

<div class="centered-image-container">
    <img class="centered-image" src="">
</div>

<强> CSS

.centered-image-container {
    text-align: center;
}
.centered-image {
    width: auto;
    max-width: 100%;
}

这是一个带有示例的代码集:http://codepen.io/anon/pen/eHfrd

答案 4 :(得分:0)

试试这个。

.product .img-responsive {
    margin: 0 auto;
}

答案 5 :(得分:0)

以这种方式(Fiddle)图像水平和垂直居中并且响应

img {
    max-width:100%;
    height:auto;
    width: auto;
    margin: auto;
    position: absolute;
    top: 0; left: 0; bottom: 0; right: 0;
}