gpt4 book ai didi

html - css:Chrome 和 Safari 中不同的列容器高度(bootstrap 4)

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:46 24 4
gpt4 key购买 nike

我有这样的代码(它是一个原型(prototype),在真实的应用程序中一切都不一样,但架构相同):

  <body>
<div class="row">
<div class="col-3 d-none d-sm-block">
<div class="h-100" style="background:red">
123123
</div>
</div>
<div class="col-3 d-none d-sm-block">
asdasdasd <br> asdasdasd <br> asdasdasd
</div>
</div>
</body>

https://plnkr.co/edit/TyrOGOCNBHePtbxH6xYN?p=preview

我正在使用 bootstrap 4。

但在 Chrome 中一切正常: enter image description here

不在 Safari (v10.1) 中:enter image description here

我做错了什么?是否可以在不重建我的 DOM 的情况下更改此样式?所以高度应该和 Chrome 中的一样

最佳答案

使用给定的代码,这在 Safari 上不起作用。

原因很简单,当你在内部 div 上设置 h-100 (height: 100% !important) 时,该百分比值将基于父项的设置高度,在本例中没有,因此计算值将为 auto

其他浏览器似乎使用 col-3 flex item 元素及其父元素的 align-items: stretch 的计算高度,因此它可以工作。

此示例证明,如果将 align-items 设置为 flex-start,它在其他浏览器中也会失败:https://plnkr.co/edit/LqSqK4j4GhpDbkc4E0i5?p=preview


更好的方法是正确使用 Bootstrap 4 和 Flexbox 模型,在这种情况下,对于 flex 行元素,它有其 align-items。它的默认值为 stretch,与 height: 100% 的作用完全相同。

因为没有什么是 block 元素可以用 flex 元素做不到的,只需将 h-100 更改为 w-100d-sm-blockd-sm-flex 它将工作。

Updated plnkr

堆栈片段

<link data-require="bootstrap@4.0.5" data-semver="4.0.5" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" />

<h1>Hello Plunker!</h1>

<div class="row">
<div class="col-3 d-none d-sm-flex">
<div class="w-100" style="background:red">
123123
</div>
</div>
<div class="col-3 d-none d-sm-flex">
asdasdasd <br> asdasdasd <br> asdasdasd
</div>
</div>


比使用 w-100 (width: 100%) 更好的方法是使用 flex: 1。由于 Bootstrap 的 col 规则可以做到这一点,而且还有填充,因此您可以创建自己的规则,这里称为 flex-1

.flex-1 {
-webkit-flex-basis: 0;
-ms-flex-preferred-size: 0;
flex-basis: 0;
-webkit-box-flex: 1;
-webkit-flex-grow: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}

https://plnkr.co/edit/ODeYcUgEDdZjysnCQSYB?p=preview


或者使用 col 结合删除填充的新规则,这里称为 nopadding

.nopadding {
padding: 0;
}

https://plnkr.co/edit/jj07PrEVXDMW2eRLw4Ti?p=preview

关于html - css:Chrome 和 Safari 中不同的列容器高度(bootstrap 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46533439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com