【发布时间】:2017-11-03 03:40:35
【问题描述】:
这是关于最近添加到 CSS 网络标准中的新 CSS 网格系统的问题。这是我尝试使用的布局示例:
html,body{
height: 100vh;
width: 100wh;
padding: 0;
margin: 0;
color: #e6e6e6;
}
body{
display: grid;
grid-template-columns: 9fr 300px;
grid-template-rows: 50px auto 50px;
grid-template-areas: "header header"
"main chat"
"footer footer";
}
.chat{
grid-area: chat;
background-color: brown;
overflow: auto;
}
.header{
grid-area: header;
background-color: black;
}
.main{
grid-area: main;
background-color: maroon;
}
.footer{
grid-area: footer;
background-color: #222;
}
<div class="header">
header
</div>
<div class="main">
main
</div>
<div class="chat">
chat
</div>
<div class="footer">
footer
</div>
现在我需要切换聊天侧边栏,使主 div 占据剩余空间。我已经知道如何在 flexbox 和 JavaScript 中做到这一点。不过,我想尝试使用 CSS Grids。
一种方法是这样做:grid-template-columns: 1fr 0;
但我希望聊天侧边栏能够平滑切换(如 CSS 过渡)而不是突然消失。
【问题讨论】: