在flexbox布局中设置图像基线

Jon*_*ona 5 html css css3 flexbox

我正在尝试使用flexbox创建一个多列布局,并在所有列中对齐基线.我这样做是使用该align-items: baseline属性.现在,当每列中的第一个元素是文本时,这很有用,例如:

CSS

.container {
  display: flex;
  align-items: baseline; 
}

.col-2 {
  width: 48%;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<div class='container'> 
  <div class='col-2'>
    <h2>Nullam eget metus suscipit, auctor diam quis, sagittis eros. Phasellus quis iaculis nisi.</h2>
  </div>
  <div class='col-2'>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse lobortis nulla in elit hendrerit congue. Nullam eleifend, neque vitae finibus accumsan, augue dui lacinia leo, eget sagittis ipsum dui id leo.</p>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当列中的第一个元素是图像时,如下所示:

<div class='container'> 
  <div class='col-2'>
    <h2>Nullam eget metus suscipit, auctor diam quis, sagittis eros. Phasellus quis iaculis nisi.</h2>
  </div>
  <div class='col-2'>
    <img src='https://c1.staticflickr.com/1/644/23373656961_9d6426d815_h.jpg'>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

第一列中的标题与第二列中图像的底部对齐.我想要做的是更改图像基线,以便标题将移动到列的顶部.我知道您可以通过将align-items属性设置为来解决此问题flex-start,但我更愿意保留该align-items属性.这样,无论有多少列,文本基线都将始终对齐.

我的目标 - 弄清楚如何在不改变.container课程的情况下调整图像基线.这可能吗?

这里有一个codepen你可以玩弄http://codepen.io/jonathink/pen/wMwgwZ

Mic*_*l_B 5

我想要做的是更改图像基线,以便标题将移向列的顶部。

我的目标 - 弄清楚如何在不更改.container类的情况下调整图像基线。这可能吗?

您可以为图像创建一个类,然后使用该align-self属性仅调整图像的对齐方式。

从你的代码笔

修改后的 HTML.image在两个地方添加了类)

<div class='container'>
  <div class='col-2'>
    <h2>Nullam eget metus suscipit...</h2>
  </div>
  <div class='col-2'>
    <p>Lorem ipsum dolor sit amet, cons...</p>
  </div>
</div>
<div class='container'>
  <div class='col-2'>
    <h2>Nullam eget metus suscipit...</h2>
  </div>
  <div class='col-2 image'><!-- ADJUSTMENT HERE -->
    <img src='https://c1.staticflickr.com/1/644/23373656961_9d6426d815_h.jpg'>
  </div>
</div>
<div class='container'>
  <div class='col-3'>
    <h2>Nullam eget metus suscipit...</h2>
  </div>
  <div class='col-3'>
    <p>Lorem ipsum dolor sit amet...</p>
  </div>
  <div class='col-3 image'><!-- ADJUSTMENT HERE -->
    <img src='https://c1.staticflickr.com/1/644/23373656961_9d6426d815_h.jpg'>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

修改了 CSS(添加了一条规则)

.image { align-self: flex-end; }
Run Code Online (Sandbox Code Playgroud)

修改后的演示