3 回答
TA贡献1818条经验 获得超7个赞
带上我的 2 美分,您还可以利用display: table|table-row|table-cell来创建此布局(请参阅有关 display 属性的MDN 文档以了解更多信息)。
使用这些属性时的技巧,除非display: flex,是告诉“动作”单元格测量 0.1px,这将迫使单元格尽可能地最小。但是,它不会破坏其内部内容,允许根据内部内容进行动态调整。
由于单元格默认共享空间,因此这种布局可以完成工作,因为“Div A”正在使用剩余的可用空间。
检查这个JSFiddle或使用下面的代码片段来玩它。我注释了您可以调整的属性。
body {
margin: 0px;
}
.app {
width: 100vw;
height: 100vh;
display: table;
}
.main,
.actions {
display: table-row;
}
.main > div,
.actions > div {
display: table-cell;
vertical-align: middle;
text-align: center;
border-width: 10px; /* tweak this */
border-style: solid; /* tweak this */
}
.main > div {
border-color: purple; /* tweak this */
background-color: violet; /* tweak this */
}
.actions > div {
padding: 20px; /* tweak this */
border-color: blue; /* tweak this */
background-color: lightblue; /* tweak this */
height: 0.1px;
}
.button {
width: 200px; /* tweak this */
padding: 10px; /* tweak this */
}
<div class="app">
<main class="main">
<div>
Div A
</div>
</main>
<footer class="actions">
<div>
<div>
Div B - some text and 2 buttons
</div>
<div>
<button class="button">
Button 1
</button>
</div>
<div>
<button class="button">
Button 2
</button>
</div>
</div>
</footer>
</div>
添加回答
举报