【发布时间】:2022-01-19 18:14:51
【问题描述】:
我正在尝试根据视口大小创建 3 列布局模板,每列具有固定比例,因此左侧为 20%,中心正文内容为 50%,右侧为 30%。我还在父容器下以像素为单位设置了每列的最小和最大宽度。但是我面临的问题是,当我将width:400px 添加到左侧子节点时,它会忽略父级左侧的最大宽度(320 像素)并将左侧导航的宽度延伸到 400 像素。我希望子元素尊重父元素设置的最大宽度。如何设置每列的最大/最小宽度,以便无论我在子元素中放置什么宽度,它都尊重父元素的宽度百分比和最大/最小宽度?
* {
outline: 1px red solid;
margin: 0;
}
.parent-wrapper {
display: flex;
}
.parent-left {
width: 20%;
max-width: 320px;
min-width: 256px;
}
.parent-center {
width: 50%;
max-width: 1400px;
}
.parent-right {
width: 30%;
max-width: 464px;
min-width: 384px;
}
.child-left {
background-color: hotpink;
width: 400px; /*I don't want this to over-ride max-width of 320px, but it does.*/
}
<div class="parent-wrapper">
<div class="parent-left">
<nav class="child-left">
<p>Left Nav</p>
</nav>
</div>
<div class="parent-center">
<div class="child-center">
<p>Body Content</p>
</div>
</div>
<div class="parent-right">
<div class="child-right">
<p>Right Panel</p>
</div>
</div>
</div>
【问题讨论】:
-
max-width: 100%;除了孩子的宽度。或者:width: min(400px, 100%);在孩子身上。另外:overflow: hidden;或overflow: scroll;在父级上。另请参阅flex和grid布局技术。
标签: javascript html css