我正在尝试创建一个填充所有垂直空间的框架的网站,例如,变得更小并且溢出的内容变得可滚动。css让父母的div 100%身高和儿童可滚动
html和身高被设置为100vh,并且所有的父框都设置为100%。我还没有找到另一种方法,这导致每个父母都是100vh,并最终导致网站溢出。
我在做什么错? 我觉得自己像一个上午只是缺少合适“的位置:”属性...
<!DOCTYPE html>
<html>
<head>
<title>Pastebook</title>
<style type="text/css">
html,
body {
height: 100vh;
}
/*central panel*/
.central {
position: absolute;
width: 100%;
margin: 0 auto;
height: 100%;
border: 3px solid blue;
}
/*central middle panel*/
.middle {
margin: 0 auto;
max-width: 970px;
height: 100%;
border: 3px solid yellow;
}
/*content panel*/
.contentPanel {
margin: 0 auto;
padding-top: 0px;
height: 100%;
border: 3px solid lightgreen;
}
/*Clipboard Box*/
.clipboard {
border-radius: 5px;
border: 5px solid gray;
font-size: 100%;
overflow: auto;
padding: 5px;
height: 100%
}
/*Example content*/
.content {
height: 100px;
background: lightgray;
margin: 5px;
}
</style>
</head>
<body>
<div class="central">
<div class="content">
central
</div>
<div class="middle">
<div class="content">
middle
</div>
<div class="contentPanel">
<div class="content">
content
</div>
<div class="clipboard">
<div style="height:400px; background: lightgray; margin:5px;">
clipboard
</div>
<div style="height:400px; background: lightgray; margin:5px;">
clipboard
</div>
<div style="height:400px; background: lightgray; margin:5px;">
clipboard
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Reeeeally不知道你想做什么。但是,您可能想将'box-sizing:border-box'放在所有解析为''height:100vh'的元素上。这会让他们吃的非边际空间占用100vh,而不是单独的内容。 – abluejelly
简而言之:除剪贴板以外的所有元素都应占用所有垂直空间,不多也不少,而溢出则由剪贴板(它实际发生的唯一位置)管理。 –
听起来像你想'flex-direction:column'和'flex-grow:1'的100vh'' flexbox',或者将div高度设置为'33.3%'而不是'100%',然后,将剪贴板放置在它/它们的外面。但是我必须问*为什么*你想这样做?并不是所有的视口都会有足够大的vh来容纳你的所有内容,并且自然滚动按照原因完成。就像,这听起来像一个用户体验的噩梦 - 使我犹豫是否真的帮助。 – abluejelly