html - 使用 CSS 防止调整容器内的图像失真

标签 html css

给定一个 HTML 片段

<div class="swiper-slide">
  <div layout="row" layout-align="start stretch" flex style="height: 100%;">
    <div layout="row" layout-align="center center" flex="grow">
      <img src="/media/{{mediaId}}/h/1440">
    </div>
  </div>
</div>

它是 CSS 作为

img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}

图像确实保持居中并且不会超出其父容器,但是在调整组件大小时它会水平拉伸(stretch)或收缩。是否可以判断图像元素应保持显示图像的纵横比?

最佳答案

将图像显示为容器 block 的背景,根据您的需要进行拉伸(stretch)。

像这样:

<div class="swiper-slide">
  <div layout="row" layout-align="start stretch" flex style="height: 100%;">
    <div layout="row" layout-align="center center" flex="grow">
      <div 
        class="img-container" 
        style="background-image: url(/media/{{mediaId}}/h/1440)"
      >
      </div>
    </div>
  </div>
</div>

CSS:

.img-container {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-repeat: no-repeat;
}

通过这种方式,您可以确保图像不会只在一个方向上拉伸(stretch),使其看起来不那么好看,而是保持比例不变。

关于html - 使用 CSS 防止调整容器内的图像失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52722597/

相关文章:

android - 直接从 Android 文件管理器打开 html 页面时如何正确设置背景图像的绝对路径

html - ul,li 菜单 - IE9 填充边距?

html - 如何让我的整个网站在移动设备上响应?

html - 如何在 Bootstrap 中禁用自动隐藏滚动条(最好没有插件)

当内部 child 有 float 时 CSS 高度 100%

javascript - Sidenav 默认打开而不是 OnClick

javascript - 首次点击后启用链接

html - 为 URL 添加 CSS 前缀

php - Wordpress 添加按钮链接

JQuery CSS nth-child 选择器