html - 嵌套 div 高度和溢出
问题描述
假设我有一些固定大小的容器,并且我希望所有元素都适合其中,但我不知道内部元素的所有高度。有些元素有很多文字,所以我设置了溢出:隐藏。但是这个元素忽略了容器的高度,只是拉伸以适应内容。我该怎么做?
编辑:如果我在容器上设置溢出,溢出的文本将被隐藏,但底部填充将被忽略(参见第二个片段)。如何从底部边框剪切文本 5px,使所有边看起来都相等?
.outer {
width: 200px;
height: 200px;
}
.inner {
padding: 5px;
background-color: #ccc;
height: 150px;
border: 1px solid black;
}
.text {
overflow: hidden;
}
<div class="outer">
<div class="inner">
<span style="color: red">Some element so we can't make text 100% height</span>
<div class="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
</div>
</div>
<div>Some other text</div>
</div>
.outer {
width: 200px;
height: 200px;
}
.inner {
padding: 5px;
overflow: hidden;
background-color: #ccc;
height: 150px;
border: 1px solid black;
}
.text {
overflow: hidden;
}
<div class="outer">
<div class="inner">
<span style="color: red">Some element so we can't make text 100% height</span>
<div class="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
</div>
</div>
<div>Some other text</div>
</div>
解决方案
你可以在里面嵌套一个额外的 div .inner
(我.inner2
在这个例子中使用过,你可以想出一个更有意义的名字!:))。
基本上,您需要将背景/边框与控制溢出的容器分开(您是对的,溢出到元素的边缘,它不关心填充)。
只是一个例子,但我在其中添加了第二个 div ( .inner2
).inner
并将height
andoverflow
规则移到了那个。背景/填充/边框保持不变。
编辑:为 inner2 添加了一个石灰边框,以更好地说明正在发生的事情。
.outer {
width: 200px;
height: 200px;
}
.inner {
padding: 5px;
background-color: #ccc;
border: 1px solid black;
}
.inner2 {
height: 150px;
overflow: hidden;
border: 1px solid lime;
}
.text {
}
<div class="outer">
<div class="inner">
<div class="inner2">
<span style="color: red">Some element so we can't make text 100% height</span>
<div class="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
</div>
</div>
</div>
<div>Some other text</div>
</div>
推荐阅读
- c - C中这些数据变量声明差异的原因是什么
- angular - 仅在服务器上获取带有可观察值但在本地没有的错误(:NullInjectorError:没有e的提供者!)
- android - 如何从 android 上的游标类中获取模型对象?
- php - 如何获取 Laravel 组数组数据总数?
- arrays - 当我在 C 中使用双指针查找数组的行列式时出现分段错误
- java - 尝试运行 JavaFX 应用程序时,openJDK 平台二进制文件没有响应
- amazon-web-services - ECS 任务定义 - 每个任务的容器还是任务内的多个容器?
- r - 如何操作数据框列表
- c# - 如何在一个循环中配置多个选项?
- vue.js - vuetify-form-base 表单未在生产模式下加载