IE11 flexbox 问题:bootstrap 4 卡高度是子卡体的最大值 "img-fluid"

IE11 flexbox issue: bootstrap 4 card height is maximum of child card-body "img-fluid"

我正在 bootstrap 4.0.0 中开发一个模板,我将使用该模板制作包含许多 (50+) 混合比例图像的多个画廊页面。我有一个网格布局,除了 IE11 之外效果很好。我的图片位于按钮内的卡片内,卡片高度似乎拉伸到响应图像的最大高度。

我自动添加了前缀,并尝试了 this flexbox bug page 上的选项,但没有成功。

我尝试将代码包含在代码片段中,但它不起作用,所以我将提供这个 link to a bootply:

显示列高度太高的 IE11 问题的屏幕截图:Link

显示网格在其他浏览器中的外观的图片Link

除 IE11 外,所有现代浏览器、屏幕尺寸和设备均适用,IE11 占访问者的 10%。 (我不担心任何不支持 bootstrap 4.0 的旧版本,例如 ie9 或 safari 8)

我找到了适用于 IE 11 和几乎适用于 10 的答案。

然而,它在 safari 9 和 10 中损坏,但在 11 中很好。

实际上我又重做了一遍,更干净了,所有 "bootstrapy" 只有 1 个自定义 css class 和 IE11 的 img-fluid modificaiton 解决它的主要方法是将按钮放入卡片中,并将 h-100 添加到两个 classes。我还必须将 img 放在空白处 div 否则 firefox 会扭曲图像比例。

css

.img-fluid {
width: 100%;
}
.tall {
padding: .6em 1rem 0 1rem;
}             

相关html

   <div class="col-sm-12 col-md-6 col-lg-3 col-xl-2 pb-3 px-2">
                <div class="card h-100 border border-secondary text-center">
                    <a href="#" class="btn  h-100 d-flex align-items-center 
justify-content-center" role="button">
<div>
                        <img src="http://picsum.photos/300/150" class="img-fluid">
</div>
                    </a>
                    <p class=" text-dark">Wide Img Btn<br> <span class="text-warning d-block d-md-none">Invisible save for phones Extended captions will wrap blah blah blah</span></p>
                </div>
            </div>

https://www.bootply.com/uyEOFuUjJl

下一行是第一个修复。但还是一团糟:


这在 IE 10 和 11 中有效,但如上所述,有点乱。

我不得不将 h-100 添加到我的卡体和卡中。

https://www.bootply.com/vRYNMCZTZk

这不完全是我的问题,但我在此 github post https://github.com/twbs/bootstrap/issues/21885

中找到了提示

我遇到了同样的问题,特别是使用 card-deck 作为卡片的包装器。以下是我如何解决这个问题:

CSS

.franses-img {
    background-color: gray;
}
    .franses-img img {
        width: 100%;
        height: auto;
        display: block !important;
    }
.img-fluid {
    width: 100%;
}
.card {
    display: block !important;
}
.card-footer {
    position:absolute;
    bottom: 0px;
}

HTML

<div class="card-deck">
        <div class="card border-secondary mb-3">
            <div class="franses-img"><img src="http://localhost:61955/Images/media/UZ80218DGW65.jpg" id="p-223" class="card-img-top"/></div>
            <div class="card-body">
                <div class="card-text">&nbsp;</div>
            </div>
            <div class="card-footer"><input type="checkbox" id="223" /></div>
        </div>
        <div class="card border-secondary mb-3">
            <div class="franses-img"><img src="http://localhost:61955/Images/media/WEDDING_1.jpg" id="p-238" class="card-img-top"/></div>
            <div class="card-body">
                <div class="card-text">&nbsp;</div>
            </div>
            <div class="card-footer"><input type="checkbox" id="238" /></div>
        </div>
        <div class="card border-secondary mb-3">
            <div class="franses-img"><img src="http://localhost:61955/Images/media/wb3_1.jpg" id="p-234" class="card-img-top"/></div>
            <div class="card-body">
                <div class="card-text">&nbsp;</div>
            </div>
            <div class="card-footer"><input type="checkbox" id="234" /></div>
        </div>
        <div class="card border-secondary mb-3">
            <div class="franses-img"><img src="http://localhost:61955/Images/media/XD729_1.jpg" id="p-240" class="card-img-top"/></div>
            <div class="card-body">
                <div class="card-text">&nbsp;</div>
            </div>
            <div class="card-footer"><input type="checkbox" id="240" /></div>
        </div>
        <div class="card border-secondary mb-3">
            <div class="franses-img"><img src="http://localhost:61955/Images/media/wb4_1.jpg" id="p-236" class="card-img-top"/></div>
            <div class="card-body">
                <div class="card-text">&nbsp;</div>
            </div>
            <div class="card-footer"><input type="checkbox" id="236" /></div>
        </div>
        <div class="card border-secondary mb-3">
            <div class="franses-img"><img src="http://localhost:61955/Images/media/UZ80218DGW65_2.jpg" id="p-225" class="card-img-top"/></div>
            <div class="card-body">
                <div class="card-text">&nbsp;</div>
            </div>
            <div class="card-footer"><input type="checkbox" id="225" /></div>
        </div>
</div>
  • 卡 css class 被覆盖以使用 display:block
  • card-img-top 中使用的图像被包裹在 div 和 class 中 将图像的宽度设置为 100%,将高度设置为自动,同时显示 设置为阻止。
  • 卡片页脚 css class 被覆盖以确保卡片页脚
    坐在卡片的底部。

只需添加 h-100 class:

<img class="card-img h-100">

这适用于 IE 10 和 11 卡高度问题:已修复

* {
   min-height: 0.01px;
}