gpt4 book ai didi

css - 如何设计 flex parent 来包装所有的 child

转载 作者:行者123 更新时间:2023-12-04 05:21:06 25 4
gpt4 key购买 nike

我正在使用 css flex 样式设计网格布局,想要一个完整的 css 解决方案,如果可能的话,我有办法用 javascript 修复它。

当一行超过视口(viewport)宽度时,显示滚动条,但是当你滚动时,行元素的样式仍然是视口(viewport)的大小,它似乎并没有“包裹”它所有的 child 。

参见:fiddle

尝试滚动,您会看到黄色行 (.sk_row) 类并没有出现在它的所有子项周围。

一个解决方案就可以了,但我想知道为什么父项在视觉上不包含所有子项。我想我可能遗漏了一些关于 flexboxes 的关键概念......

重复的 fiddle 代码...

<body>
<div id='pg_wrap'>
<div id='frm0'>
<div class='sk_scrl'>
<div class='sk_row'>
<div class='itm_val'>row 1</div>
<div class='itm_val'>1</div>
<div class='itm_val'>2</div>
<div class='itm_val'>3</div>
<div class='itm_val'>4</div>
<div class='itm_val'>5</div>
<div class='itm_val'>6</div>
<div class='itm_val'>7</div>
<div class='itm_val'>8</div>
</div>
<div class='sk_row'>
<div class='itm_val'>row 2</div>
<div class='itm_val'>1</div>
<div class='itm_val'>2</div>
<div class='itm_val'>3</div>
<div class='itm_val'>4</div>
<div class='itm_val'>5</div>
<div class='itm_val'>6</div>
<div class='itm_val'>7</div>
<div class='itm_val'>8</div>
</div>
</div>
</div>
</div>

#frm0{      width:420px;height:200px}
.sk_scrl{ overflow:auto;display:flex;flex-flow:column;align-content:stretch}
.sk_row{
display:flex;
justify-content:flex-start;
align-items:center;
background:#ff0;border:2px #f00 solid;
height:50px}
.itm_val{
display:flex;
border:1px #000 solid;background:#666;
flex:0 0 100px; height:30px; margin:0 5px;
align-items:center;justify-content:center}

注意:这与 question 不同那个 op 想改变 child 的行为,我希望 parent 改变。

最佳答案

它没有按照你想要的方式工作,因为 .sk_row 继承了宽度,在本例中来自 #frm0:

#frm0 { width: 420px; }

对于类 .sk_scrl 你看不太清楚,因为它被设置为:

.sk_scrl { overflow: auto; }

如果您使用浏览器开发工具(假设您有任何工具),您会看到包裹在 .itm_val div 周围的元素都是 420 像素宽。 .itm_val div 在其容器外都可见的原因是因为它们“溢出”到其包含的 div 之外。

下面是宽度继承的工作原理的示例:

<div class="container">
<div class="element"></div>
</div>

如果将 .container 的宽度设置为 50%,它将占用窗口可用宽度的一半。但是,如果您希望 .element 占据整个窗口的宽度,则必须像这样调整宽度:

.element {
width: 200%;
}

如果它被设置为 100%,它只会和 .container 一样宽。

这是一个 fiddle :http://jsfiddle.net/Niffler/n8hmpv13/

关于css - 如何设计 flex parent 来包装所有的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26921440/

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