html - 如何使用 CSS Flexbox 将流体图像和标题居中?

标签 html css image flexbox

请考虑一种布局,其中尺寸可变的图像和标题应位于屏幕中央。

enter image description here

布局应该像这样(引用上图):

  1. 如果图像和说明足够小以适合屏幕,则不会发生任何特殊情况,它们只会居中。

  2. 如果图像和说明不适合屏幕高度,图像会缩小直到适合。

  3. 如果图像不适合屏幕宽度,它会缩小直到适合。

如何使用 CSS Flexbox 实现这种机制?

更新。如果标题不适合屏幕,图像应该缩小直到适合。

enter image description here

最佳答案

这是一种方法:

FIDDLE #1 (小图)

FIDDLE #2 (大宽高比)

FIDDLE #3 (大高宽比)

html,
body {
  margin: 0;
}
.wpr {
  display: flex;
  align-items: center;
  /* align vertical */
  justify-content: center;
  /* align horizontal */
  height: 100vh;
}
figure {
  text-align: center;
}
figcaption {
  width: 350px;
  text-align: left;
  margin: 0 auto;
}
img {
  max-width: 80vw; /* shrink img to viewport */
  max-height: 80vh; /* shrink img to viewport */
}
<div class="wpr">
  <figure>
    <img src="http://placehold.it/150x80" alt="">
    <figcaption>Caption for the awesome picture Caption for the awesome picture Caption for the awesome picture</figcaption>
  </figure>
</div>

关于html - 如何使用 CSS Flexbox 将流体图像和标题居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27761659/

相关文章:

html - 带有 em 的 SVG 高度没有响应

javascript - 我的引导模式不工作

javascript - 向 View 模型添加函数,以便在选择元素中设置 OptionText

html - HTML 标签上的背景位置不起作用

html - css重复背景高度和绝对定位

image - 使用 IMG 响应,PNG 只能从大尺寸缩放到正常尺寸,而不是从正常尺寸缩放到小尺寸

html - 为什么我的父 Div 容器中的 2 个 Div 没有彼此对齐?

html - 为什么段落和文本框的高度在 Div 中不相同?

移动浏览器上背景图片的CSS问题

image - 在刚刚创建的 Go 中提供图像