我想制作一个方形div,占用容器的剩余大小。我怎么能用CSS做到这一点?
具体地:
这是一张清晰明了的图片:
注意:
我知道答案&使用带padding-bottom: 100%;
的容器组件的方法。这不是一个可接受的解决方案,因为它失败#2(不会根据什么尺寸约束方块而切换)。
无法解决的解决方案
答案 0 :(得分:1)
您可以在(calc()
)vh
/ vw
之间转发max-
和width
/ height
个单位。
header {
background: pink;
height: 150px;
}
header, .squarred {/* use flex for centering, optionnal */
display: flex;
align-items: center;
justify-content: center;
flex-direction: ;
}
.squarred {
width:calc(100vh - 150px);/* luck: header has a fixed height , remove it */
max-width:100vw;/* stay within the window */
max-height:100vw;/* stay within the window */
margin:0 auto;
flex:1;
overflow:auto;/* can be usefull */
background:turquoise;
}
html,body {/* set the frame */
margin:0;
height:100vh;
display:flex;
flex-direction:column;
}

<header><h1>header</h1></header>
<main class="squarred">
<div class="buffer">
<h2>I am a square</h2>
<p>I occupy the remaining space</p>
</div>
&#13;