如何在 css 中垂直对齐响应图像

How to vertically align responsive image in css

我在将响应式图像在其容器内垂直居中时遇到问题。

我已经尝试了一些东西,但这些都是固定大小的作品,而不是响应式的。

我正在使用 Bootstrap 4.

低于我的代码并尝试使用行高

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
  <div class="row">
    <div class="col-md-7 img-container" style="line-height:100%">
      <img src="sample.jpg" alt="Sample" class="img-fluid">
    </div>
    <div class="col-md-5">
      <h3>Title 1</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
      <h3>Title 1</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
      <h3>Title 1</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
    </div>
  </div>
</div>

你可以使用 flexbox。对于图片的容器写如下代码

.yourContainer{
  display:flex;
  justify-content:center;

}

由于您使用的是 Bootstrap,因此您可以将 d-flex align-items-center 添加到 col-md-7 div。这将强制该列使用 CSS flex box for layout,并且 align-items-center 告诉内容垂直放置。

如果你想自己做,可以试试这个。 首先你必须为图像的容器添加其他class

<div class="container">
    <div class="row">
        <div class="col-md-7 wrapper-img" style="line-height:100%">
            <img src="sample.jpg" alt="Sample" class="img-fluid">
        </div>
        <div class="col-md-5">
            <h3>Title 1</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
            <h3>Title 1</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
            <h3>Title 1</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
        </div>
    </div>
</div>

在style.css

.wrapper-img{   
   display:flex;
   align-items: center;
}

bootstrap 带有内置的 class ,你可以使用 col 上的 d-flex 和 img 上的 m-auto :

.row {border:solid}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
    <div class="row">
        <div class="col-md-7 d-flex " style="line-height:100%">
            <img src="http://dummyimage.com/100&text=sample.jpg" alt="Sample" class="img-fluid m-auto">
        </div>
        <div class="col-md-5">
            <h3>Title 1</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
            <h3>Title 1</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
            <h3>Title 1</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore aperiam, sit placeat corporis architecto praesentium facere aut rem quis odio ab voluptates sunt, eum harum ipsam, fugit numquam aliquid laboriosam.</p>
        </div>
    </div>
</div>

文档:https://getbootstrap.com/docs/4.0/utilities/spacing/ & https://getbootstrap.com/docs/4.0/utilities/display/