gpt4 book ai didi

html - 使用 flex 扩展到父元素外部的子元素

转载 作者:太空狗 更新时间:2023-10-29 13:47:14 25 4
gpt4 key购买 nike

我使用 CSS flex 并排显示两个包含在包装器中的 div,我一直在尝试在 #myClippetWrapper 中设置高度,因此在子元素中#myClippetWrapper 我可以设置 height: 100%;

但是正如您从运行下面的代码片段中看到的那样,#myClippetWrapper 中的所有元素都在主要部分之外,它们都卡在主要内容 div 之外?

我不想使用 overflow: auto 因为我不想在那里有滚动条,我只需要 #myClippetWrapper 的子元素不在外面主要部分/div。

main {
margin: 0 auto;
margin-top: 10px;
margin-bottom: 10px;
padding: 8px;
background-color: red;
width: 100%;
max-width: 50%;
height: auto;
}

#myClippetWrapper {
display: flex;
height: 700px;
}

#clippetNav {
padding: 10px;
width: 250px;
height: 100%;
background-color: #222222;
margin-right: 10px;
}

#codeAndNotesWrapper {
display: flex;
width: 100%;
}

#codeAndNotesWrapper>div {
flex-basis: 100%;
height: 100%;
}

#codeView {
padding: 10px;
/*flex: 0 0 40%;*/
height: 100%;
background-color: #222222;
margin-right: 10px;
}

#noteView {
padding: 10px;
/*flex: 1;*/
height: 100%;
background-color: #222222;
}

#codeNotesEditor {
height: 100%;
background-color: #EAEAEA;
}
<main>
<div id="myClippetWrapper">

<div id="clippetNav">

</div>

<div id="codeAndNotesWrapper">

<div id="codeView">

</div>

<div id="noteView">

<div id="codeNotesEditor">

</div>

</div>

</div>

</div>
</main>

最佳答案

在许多情况下,flexbox 消除了使用百分比高度的需要。

flex 容器的初始设置是align-items: stretch。这意味着在 flex-direction: row 中(就像在您的代码中一样)flex 元素将自动扩展容器的整个高度。

或者,您可以使用 flex-direction: column 然后将 flex: 1 应用于子项,这也可以使 flex 元素展开整个高度 parent 。

main {
max-width: 50%;
margin: 10px auto;
padding: 8px;
background-color: red;
}

#myClippetWrapper {
display: flex;
height: 700px;
}

#clippetNav {
display: flex;
padding: 10px;
width: 250px;
margin-right: 10px;
background-color: #222222;
}

#codeAndNotesWrapper {
display: flex;
width: 100%;
}

#codeAndNotesWrapper>div {
display: flex;
flex-basis: 100%;
}

#codeView {
display: flex;
padding: 10px;
margin-right: 10px;
background-color: #222222;
}

#noteView {
display: flex;
flex-direction: column;
padding: 10px;
background-color: #222222;
}

#codeNotesEditor {
flex: 1;
background-color: #EAEAEA;
}
<main>
<div id="myClippetWrapper">
<div id="clippetNav"></div>
<div id="codeAndNotesWrapper">
<div id="codeView"></div>
<div id="noteView">
<div id="codeNotesEditor"></div>
</div>
</div>
</div>
</main>

jsFiddle

关于html - 使用 flex 扩展到父元素外部的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42536619/

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