gpt4 book ai didi

javascript - flex 容器子容器的 scrollWidth 不正确

转载 作者:行者123 更新时间:2023-11-29 22:57:03 26 4
gpt4 key购买 nike

根据 w3schools :

The scrollWidth and scrollHeight properties return the entire height and width of an element, including the height and width that is not viewable (because of overflow).

如果是这样,为什么在较窄的 flex 父元素内的元素的 scrollWidth 仅报告为可见部分?

document.body.append("Bar 1 scrollWidth = " + document.getElementById("inner1").scrollWidth);
document.body.appendChild(document.createElement("br"));
document.body.append("Bar 2 scrollWidth = " + document.getElementById("inner2").scrollWidth);
div {
outline: 1px solid grey;
margin-bottom: 10px;
}

.outer {
width: 200px;
background-color: yellow;
padding: 3px;
}

.inner {
width: 300px;
position: relative;
display: inline-block;
background-color: pink;
}

#outer2 {
display: flex;
background-color: lightgreen;
}
<div class="outer" id="outer1">
<div class="inner" id="inner1">Bar 1</div>
</div>

<div class="outer" id="outer2">
<div class="inner" id="inner2">Bar 2</div>
</div>

最佳答案

当您在某些充当容器的元素上使用 display:flex 时,该容器内的元素将缩小宽度以适应容器的宽度。这实际上是 flexbox 的本质,重要的是你想做一个响应式布局。

但是,您可以使用 flex-shrink: 0以防止某些特定元素出现这种情况,但我不确定您为什么要这样做。

示例:

document.body.append("Bar 1 scrollWidth = " + document.getElementById("inner1").scrollWidth);
document.body.appendChild(document.createElement("br"));
document.body.append("Bar 2 scrollWidth = " + document.getElementById("inner2").scrollWidth);
div {
outline: 1px solid grey;
margin-bottom: 10px;
}

.outer {
width: 200px;
background-color: yellow;
padding: 3px;
}

.inner {
width: 300px;
position: relative;
display: inline-block;
background-color: pink;
}

#outer2 {
display: flex;
background-color: lightgreen;
}

#inner2 {
flex-shrink: 0;
}
<div class="outer" id="outer1">
<div class="inner" id="inner1">Bar 1</div>
</div>

<div class="outer" id="outer2">
<div class="inner" id="inner2">Bar 2</div>
</div>

关于javascript - flex 容器子容器的 scrollWidth 不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56470839/

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