Hao*_* Wu 3 html css flexbox responsive
我有 3 个块,我需要:
但是如何用css来实现呢?
我不想嵌套内部 div,因为它们扮演着相同的角色。
我尝试了这个但不起作用:(
* {
box-sizing: border-box;
}
.wrapper {
width: 100%;
display: flex;
position: relative;
}
.wrapper > * {
height: 300px;
display block;
}
.wrapper > *:nth-child(1) {
background-color: salmon;
width: 200px;
}
.wrapper > *:nth-child(2) {
background-color: khaki;
right: 50%;
}
.wrapper > *:nth-child(3) {
background-color: violet;
width: 50%;
}Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
<pre>
left: 0;
width: 200px;
</pre>
<pre>
left: 200px;
right: 50%;
</pre>
<pre>
left: 50%;
right: 0;
</pre>
</div>Run Code Online (Sandbox Code Playgroud)
您可以设置flex: 0 0 50%为第三个子元素,这意味着该元素不会增长、收缩,并且始终占据 Flexbox 容器宽度的一半。
现在,为了允许第二个子元素占据其他两个元素留下的剩余空间,您可以设置flex-grow: 1和设置min-width: 0(允许它比其固有宽度进一步缩小 - 请注意,min-width对于弹性项目,默认值为 auto )。
请参阅下面的演示:
* {
box-sizing: border-box;
}
.wrapper {
width: 100%;
display: flex;
position: relative;
}
.wrapper > * {
height: 300px;
display: block;
}
.wrapper > *:nth-child(1) {
background-color: salmon;
width: 200px;
}
.wrapper > *:nth-child(2) {
background-color: khaki;
flex-grow: 1; /* grow width automatically if needed */
min-width: 0; /* allow shrinking below default width */
}
.wrapper > *:nth-child(3) {
background-color: violet;
flex: 0 0 50%; /* added */
}Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
<pre>
left: 0;
width: 200px;
</pre>
<pre>
left: 200px;
right: 50%;
</pre>
<pre>
left: 50%;
right: 0;
</pre>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4141 次 |
| 最近记录: |