【发布时间】:2019-07-15 09:05:51
【问题描述】:
我目前正在尝试构建一个应该有 3 个可能的子元素的 flex 布局:
- 如果包装器只有一个按钮,它应该具有包装器的整个宽度。
- 如果包装器有两个子级,则最后一个的最大宽度应为 75 像素,第一个必须填满可用空间。
- 如果包装器共有三个子级,则第一行应与前面示例中的一样,但最后一个子级应位于下一行,宽度为 100%。
我已经构建了这个网格布局,但由于某些浏览器的兼容性,我需要将其更改为 flex。我怎样才能做到这一点?我尝试了很多,但结果总是很糟糕。
.wrapper {
width: 60%;
display: grid;
display: -ms-grid;
grid-template-columns: 1fr 75px;
text-align: center;
position: relative;
margin-bottom: 20px;
}
.wrapper div+div {
margin-left: 6px;
}
.wrapper div {
background-color: yellow;
padding: .6em 1em;
text-align: center;
}
.wrapper div.show.single-button {
grid-column: 1/span 2;
}
.wrapper div.cancel {
grid-column: 1/span 2;
-ms-grid-row: 2;
-ms-grid-column-span: 2;
margin-top: 6px;
margin-left: 0;
}
<div class="wrapper">
<div class="show single-button">Show</div>
</div>
<div class="wrapper">
<div class="show">Show</div>
<div class="invoice">Invoice</div>
</div>
<div class="wrapper">
<div class="show">Show</div>
<div class="invoice">Invoice</div>
<div class="cancel">Cancel</div>
</div>
【问题讨论】: