当上方和下方文本有任何长度时,如何对卡片图像进行内联对齐?

kni*_*ove 5 css css3

在此输入图像描述

我正在尝试不使用JavaScript创建布局,就像图片附加,顶部和底部是文本,中间是图像,我应该怎么做才能使图像内联对齐,而不使用JavaScript和网格.顶部和底部文本也是动态的,可以是任意长度.

Xen*_*ias 0

html, body { margin: 0; }
.containers {
  display: flex;
}

.container {
  display: flex;
  width: 300px;
  flex-direction: column;
}

main {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  background-color: #eee;
}

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

header, footer {
  background-color: #ccc;
  padding: 1em;
  text-align: center;
  height: 38px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>Align Image inline</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div class="containers">
      <div class="container">
        <header>Header Header Header Header Header Header
        Header Header Header Header Header Header
        Header Header Header Header Header Header</header>
        <main>
          <img src="https://placekitten.com/g/400/200" alt="" />
        </main>
        <footer>Footer</footer>
      </div>
      <div class="container">
        <header>Header</header>
        <main>
          <img src="https://placekitten.com/g/400/200" alt="" />
        </main>
        <footer>Footer Footer Footer Footer Footer Footer Footer Footer </footer>
      </div>
      <div class="container">
        <header>Header</header>
        <main>
          <img src="https://placekitten.com/g/400/200" alt="" />
        </main>
        <footer>Footer</footer>
      </div>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

ellipsis如果标题超过3行则添加css

https://jsfiddle.net/q6herk2c/4/888