Flexbox 中的图像高度在 IE 中不起作用

2024-05-11

我有一个 Flex“行”,其中包含 5 个 Flex“单元格”,其中包含一个应该在中间对齐的图像。

它在 Chrome 和 Firefox 中完美运行,但在 IE 中却不行。它没有得到好的比例。换句话说,height:auto当图像位于 Flexbox 中时,在 IE 中不起作用。

我已经尝试了几件事,比如flex:none;对于图像或将图像包装在另一个图像中div。什么都不起作用。

我希望它具有良好的比例并且完全居中:

这是一个 jsFiddle:https://jsfiddle.net/z8op323f/5/ https://jsfiddle.net/z8op323f/5/

.grid-row {
  width: 300px;
  height: 300px;
  display: flex;
  margin: auto;
}
.grid-cell {
  height: 100%;
  width: 25%;
  transition: box-shadow 2s;
  display: flex;
}
img {
  width: 60%;
  margin: auto;
  height: auto !important;
  min-height: 1px;
}
.long {
  width: 80%;
  height: auto !important;
}
<div class="grid-row">
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
</div>

height: auto简单来说就是内容的高度。这是一个默认值;你不需要指定它。

如果您删除height: auto从您的代码来看,它不会改变任何内容(在任何浏览器中)。

从规格来看:10.5 内容高度:height财产 https://www.w3.org/TR/CSS22/visudet.html#the-height-property


问题似乎是margin: auto在 Chrome 和 FF 中受到尊重。但它在 IE 11/Edge 中(大部分)被忽略。

这可能是一个错误。众所周知,IE11 尤其具有许多flexbugs:

  • https://github.com/philipwalton/flexbugs https://github.com/philipwalton/flexbugs
  • http://caniuse.com/#search=flexbox http://caniuse.com/#search=flexbox(请参阅“已知问题”选项卡)

一个简单的跨浏览器解决方案是使用margin: auto相等的:

而不是弹性项目上的此代码:

img {
    margin: auto;
}

在弹性容器上使用它:

.grid-cell {
    display: flex;
    justify-content: center;
    align-items: center;
}

有关更多详细信息,请参阅此处的方框#56:https://stackoverflow.com/a/33856609/3597276 https://stackoverflow.com/a/33856609/3597276

修改后的小提琴 https://jsfiddle.net/z8op323f/7/

.grid-row {
  width: 300px;
  height: 300px;
  display: flex;
  margin: auto;
}
.grid-cell {
  height: 100%;
  width: 25%;
  transition: box-shadow 2s;
  display: flex;
  justify-content: center;    /* NEW */
  align-items: center;        /* NEW */
}
img {
  width: 60%;
  /* margin: auto; */
  /* height: auto !important; */
  min-height: 1px;
}
.long {
  width: 80%;
  /* height: auto !important; */
}
<div class="grid-row">
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
  <div class="grid-cell">
    <img class="long" src="http://placehold.it/350x500">
  </div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flexbox 中的图像高度在 IE 中不起作用 的相关文章

  • 具有相等宽度和高度 TD 的响应式表格

    如何创建每个单元格 TD 具有相同宽度和高度的响应式 HTML 表格 因此 当我调整浏览器窗口的大小或调整表格容器的大小时 表格将调整大小 但每个单元格将具有相同的高度和宽度 基金会不关心这个 当我用固定宽度和高度 以像素为单位 初始化 T
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1
  • 使用仅 CSS 菜单正确显示第三层子菜单

    我正在开发一个新网站 并且 css 菜单遇到问题 通过示例更容易解释 这是该网站的链接 http www webau net CSFF index asp http www webau net CSFF index asp 在 Home 父
  • 与容器内的大量元素(DOM、javascript)快速交互

    因此 我在容器 div 内有大量的 div 4000 5000 每个包含跨度 锚点 图像等 基本上我将它们的显示设置为无或根据条件阻止 这确实需要一些时间 在我更快地寻找东西时 我遇到了这个页面https developers google
  • 没有宽度/高度的 SVG 以自然尺寸渲染

    我有这个 SVG 但没有width or height属性 我有以下 HTML div class block img src https s3 eu vAmfIxVv kiwi svg div 使用以下CSS block display
  • CSS 中“!important”的反义词是什么?

    我正在构建一个 jQuery 插件 它使用 CSS 样式向嵌套 DIV 标签添加颜色和边距 由于我宁愿将插件保留为单个文件 因此我的代码使用 jQuery 将这些颜色和边距作为 CSS 属性直接添加到 DIV 中 css 方法 这些属性的值
  • Jsoup - 隐藏的div类?

    我正在尝试爬取 div 类 但到目前为止我尝试过的一切都失败了 我正在尝试抓取元素 a href div class s buttons button s buttons buttonAlt s buttons buttonSlashBac
  • 如何在我的网站上获取用户的国旗

    我想在我的网站上显示用户 访问者的国旗 我使用不同的技术 如 php jsp 和简单的 html 所以我想要一个代码 通过放置在我的网站上 访问者可以看到它 并且它应该在所有平台上运行 简而言之 我想要国家检测 API 如果有人能帮助我 我
  • htmlspecialchars() 期望参数 1 为字符串,Laravel 中给出的数组

    我的程序中出现了这个错误Laravel刀片模板 htmlspecialchars 期望参数 1 为字符串 给定数组 我尝试将数组转换为刀片模板中的字符串 这是代码 Where silderImageDataArray是这里存储的变量和值 这
  • 我无法自动播放 vimeo 视频(移动设备)

    我试图autoplay包含在的视频iframe在移动设备上 该应用程序运行良好 但用户必须单击 iFrame 内的按钮才能播放视频 我已经尝试使用 autoplay 1 中的参数iframe但它在移动设备上不起作用 在桌面上也很好 你能帮助
  • 当按下 html 键盘按钮时,将文本添加到输入字段(具有焦点的字段)

    我使用 HTML 创建了一个屏幕键盘 div and a 标签 页面上有六个文本输入 名字 昵称 姓氏 注释 过敏 手机号码 我不太擅长 JS 但如果页面上只有一个输入 我确实知道该怎么做 但我不确定当有多个输入时该怎么做 我遇到的问题之一
  • 避免 Django 中表单输入元素 ID 重复

    当一页上的两个表单具有相同名称的字段时 Django 将生成无效的 HTML
  • 如何将内部 div 与外部 div 的底部对齐?

    我需要将内部 div 与外部 div 的底部对齐 我的代码如下所示 div class myOuterDiv div class div1 floatLeft Variable content here div div class div2
  • “mat-card” 不是 Angular 7 中的已知元素

    我看到了很多关于此的问题 但似乎与我遇到的问题不同 我刚刚创建了我的第二个角度项目 我下面有一个新组件src app employees我试图在employees component html 中使用 我收到的错误是 Uncaught Er
  • 如何将身份验证详细信息传递给 iframe 内的应用程序?

    我有一个网页 想在其中显示詹金斯的网页 因此使用iframe like But http xxx xxx xx xx 8080 view Nightly 20Builds 20 打开登录页面 因此无法直接显示内容 其实我想在没有登录的情况下
  • 从动态服务器中抓取 html 列表数据

    哈喽大家好 抱歉提出转储问题 这是我最后的手段 我发誓我尝试了无数其他 Stackoverflow 问题 不同的框架等 但这些似乎没有帮助 我有以下问题 一个网站显示一个数据列表 前面有大量的 div li span 等标签 它是一个很大的
  • Div 上的倾斜边框

    我正在尝试倾斜一个 div 类似于 使用 css 倾斜 div 的顶部而不倾斜文本 https stackoverflow com questions 13591584 slant the top of a div using css wi
  • 将 SVG 元素放置在图像上

    是否可以拥有以下元素并设置它们的样式 以便 SVG 对象出现在图像上 即像图像的一部分 目前它们显示在其下方的新行中 我知道我可以将图像设置为父 div 的背景图像 但不幸的是我还需要能够在父级内旋转它 所以我认为这不是一个选项 div s
  • 如何使用FileSystem API的window.requestFileSystem?

    我用 JavaScript 编写了以下代码 JavaScript 代码 var fs null function initFS window requestFileSystem window requestFileSystem window
  • CSS 动画在 Internet Explorer 10 和 11 中不起作用

    以下 css 动画在 Chrome Mozilla Opera 浏览器中完美运行 但在 Internet Exporer 10 和 11 中不起作用 出了什么问题 请参见http jsfiddle net bm72w3n3 http jsf

随机推荐