在Bootstrap网格中垂直和水平居中图片

13

我在寻找如何将图片垂直水平居中的方法方面遇到了困难。基本上,我有两行图片,它们的宽度都是150,但高度不同。

CSS

.image-center {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}

HTML

<div class="row">
        <div class="col">
            <img class="center-block image-center" width="150" src="imagery/1.png"/>
        </div>
        <div class="col">
            <img class="center-block image-center" width="150" src="imagery/2.png"/>
        </div>            <div class="col">
            <img class="center-block image-center" width="150" src="imagery/3.png"/>
        </div>            <div class="col">
            <img class="center-block image-center" width="150" src="imagery/4.png"/>
        </div>
    </div>

    <div class="row">
        <div class="col">
            <img class="center-block" width="150" src="imagery/5.png"/>
        </div>            <div class="col">
            <img class="center-block" width="150" src="imagery/6.png"/>
        </div>            <div class="col">
            <img class="center-block" width="150" src="imagery/7.png"/>
        </div>            <div class="col">
            <img class="center-block" width="150" src="imagery/8.png"/>
        </div>
    </div>

请问您能否添加更多的CSS代码,因为您有另一个未发布的类(center-block),同时使用两个类可能会出现问题。此外,您能否发布一张结果的照片? - GonzaloPani
6个回答

38

5

这个CSS针对所有设备都是响应式的。它会水平和垂直居中。

.col {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

这必须是正确的答案。 - Magno C

1
    HTML:

<div class="row imageCenterAlign topAlign">
        <div class="col">
            <img class="center-block image-center" width="150" src="imagery/1.png"/>
        </div>
        <div class="col">
            <img class="center-block image-center" width="150" src="imagery/2.png"/>
        </div>            <div class="col">
            <img class="center-block image-center" width="150" src="imagery/3.png"/>
        </div>            <div class="col">
            <img class="center-block image-center" width="150" src="imagery/4.png"/>
        </div>
    </div>

    <div class="row imageCenterAlign">
        <div class="col">
            <img class="center-block" width="150" src="imagery/5.png"/>
        </div>            <div class="col">
            <img class="center-block" width="150" src="imagery/6.png"/>
        </div>            <div class="col">
            <img class="center-block" width="150" src="imagery/7.png"/>
        </div>            <div class="col">
            <img class="center-block" width="150" src="imagery/8.png"/>
        </div>
    </div>

css:
.imageCenterAlign{
    display: flex;
    justify-content: center;
    align-items: center;
}
.topAlign{
    top:50%;
}

0

实现这个最好的方法是使用flexbox,我个人认为。

HTML:

<div class="group">
  <img src="https://fakeimg.pl/150x100/?text=Hello" />
  <img src="https://fakeimg.pl/150x110/?text=Hello" />
  <img src="https://fakeimg.pl/150x120/?text=Hello" />
  <img src="https://fakeimg.pl/150x80/?text=Hello" />
  <img src="https://fakeimg.pl/150x70/?text=Hello" />
  <img src="https://fakeimg.pl/150x100/?text=Hello" />
  <img src="https://fakeimg.pl/150x115/?text=Hello" />
  <img src="https://fakeimg.pl/150x90/?text=Hello" />
  <img src="https://fakeimg.pl/150x100/?text=Hello" />
  <img src="https://fakeimg.pl/150x120/?text=Hello" />
</div>

CSS:

DIV.group {
 display:flex;
 flex-flow:row wrap;
 justify-content:space-between;
 align-items:center;
 align-content:stretch;
}

0

我建议您使用display:flex,您只需要创建一个水平类和一个垂直类,并将其分配给图像的div,具体取决于您想要赋予它的方向。

这很容易和简单,我为您编写了片段,您只需要更改边距,我还更改了图像。

div.horizontal {
    display: flex;
    justify-content: center;
    margin-bottom: 15px;
}

div.vertical {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-right: 15px;
}
<div class="row horizontal">
        <div class="col vertical">
            <img class="center-block image-center" width="150" src="https://www.alliedmetrics.com/images/black-viton-seals.png"/>
        </div>

        <div class="col vertical">
            <img class="center-block image-center" width="150" src="https://www.alliedmetrics.com/images/black-viton-seals.png"/>
        </div>            <div class="col vertical">
            <img class="center-block image-center" width="150" src="https://www.alliedmetrics.com/images/black-viton-seals.png"/>
        </div>            <div class="col vertical">
            <img class="center-block image-center" width="150" src="https://www.alliedmetrics.com/images/black-viton-seals.png"/>
        </div>
    </div>

    <div class="row horizontal">
        <div class="col vertical">
            <img class="center-block" width="150" src="imagery/5.png"/>
        </div>            <div class="col vertical">
            <img class="center-block " width="150" src="imagery/6.png"/>
        </div>            <div class="col vertical">
            <img class="center-block" width="150" src="imagery/7.png"/>
        </div>            <div class="col vertical">
            <img class="center-block" width="150" src="imagery/8.png"/>
        </div>
</div>

希望它能对你有所帮助。


-1

不了解Bootstrap,但如果您使用普通的CSS,请将此类应用于子容器

position: absolute,
margin: auto,
top: 0,
right: 0,
bottom: 0,
left: 0,

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接