gpt4 book ai didi

html - css 宽度 0 和 overflow 在 safari 中的隐藏问题

转载 作者:行者123 更新时间:2023-11-28 01:52:03 31 4
gpt4 key购买 nike

我在 Safari 中遇到了一个错误,我想知道是否有人能够阐明为什么会出现这种结果。我在下面包含了一个非常简单的示例,但基本上我的问题是这样的。我有一个宽度为 300px 高度为 80px 的子元素,我有一个嵌套在宽度为 0px 的父元素中的子元素和一个隐藏的溢出。这两个元素被包裹在一个没有设置宽度的容器中,所有三个元素都向左浮动。内容被父级隐藏,但是包装它们的容器正在扩展“隐藏”子级的整个宽度。在除 Safari 之外的所有浏览器中都运行良好,我不知道为什么。

摘要:宽度:0px;和溢出:隐藏;在 safari 中不起作用

<html>
<head>
<title></title>
<style type="text/css">
#container {background: rgba(0,0,255,1); float: left;}
#block {width: 0px; background: rgba(255,0,0,0.50); float: left; overflow: hidden;}
#content {width: 300px; height: 80px; background: rgba(0,255,0,0.50);}
</style>
</head>
<body>
<div id="container">
<div id="block">
<div id="content"></div>
</div>
</div>
</body>
</html>

最佳答案

Certain display values seem to be where the bug happens in Safari.

经过大量试验和错误后,似乎一个好的解决方案可能是将 max-width 设置为与 width 相同。请记住,如果您为 width 设置动画,则需要将 max-width 设置为允许 width 扩展的值(可能是 auto),在动画发生时暂时。

阅读下面的各种 CSS 注释 以了解有关此问题的更多信息。

HTML:

<div id="container">
<div id="block">
sfdklhgfdlkbgjhdlkjdhbgflkjbhgflkdfgid
</div>
</div>

CSS:

#container {
flex: 0 0 auto;
background: red;
/* BUG: Certain display values seem to be where the bug happens, if display was just inline here, there would be no issue. */
display: inline-flex;
overflow: hidden;
border: dotted 2px green;
}

#block {
width: 0;
/* height: 0; Setting height to 0 simply creates the illusion that width is fixed. If you look at the border, the width is still there, so height 0 does not help. */
background: blue;
/* BUG: Certain display values seem to be where the bug happens, if you don't need this, change it. */
display: inline-flex;
overflow: hidden;
/* Has no practical effect here. */
text-overflow: clip;
/* font-size: 0; still keeps a little bit of width and can spoil the look of animating the width open from 0. */
/* margin-right: -100vw; is a nasty hack that totally works but is bad for animating margins. */
/* BEST FIX: Setting this property to the same as width may be the best way to fix the issue. */
max-width: 0;
}

运行示例位于:https://jsfiddle.net/resistdesign/k0b5s4p7

关于html - css 宽度 0 和 overflow 在 safari 中的隐藏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452034/

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