html - 全高显示:表格单元格内容不使父级 100%
问题描述
我试图让table-cell
div 中的内容达到父 div 的 100%。但是我只能通过添加 height:100%;
到display:table
父 div 来实现这一点。
这通常没问题,但是因为我需要 html,body { height:100%;} 用于网站其他地方的全高内容,这使得表格的浏览器全高,这是我不想要的。
有没有一种方法可以在我的table-cell
全高度内制作内容而不必放在height:100;
div 上display:table;
?
html,
body {
height:100%;
margin:0;
padding:0;
}
#banner {
width:100%;
height:100%;
background:blue;
color:#ffffff;
}
.o-ds-table {
position:relative;
display:table;
width:100%;
/* height:100%; this fixed the red content being full height but makes the table full height of content*/
margin:0 auto;
}
.o-ds-table-cell {
display:table-cell;
padding:0 10px;
position:relative;
border:2px solid blue;
background:yellow;
}
.cell-item-width-4 {
width:25%;
}
.panel-item {
background:red;
height:100%;
display:block;
}
p {
margin:0;
padding:0;
}
<section id="banner">
SCROLL DOWN!
</section>
<div class="o-ds-table">
<div class="o-ds-table-cell cell-item-width-4 panel-wrap">
<div class="panel-item">
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit. Mauris nec massa tortor. Lorem ipsum dolor sit amet consectetur adipiscing elit. Mauris nec massa tortor. Lorem ipsum dolor sit amet consectetur adipiscing elit. Mauris nec massa tortor.
</p>
</div>
</div>
<div class="o-ds-table-cell cell-item-width-4> panel-wrap">
<div class="panel-item">
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit.
</p>
</div>
</div>
<div class="o-ds-table-cell cell-item-width-4 panel-wrap">
<div class="panel-item">
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit.
</p>
</div>
</div>
<div class="o-ds-table-cell cell-item-width-4 panel-wrap">
<div class="panel-item">
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit.
</p>
</div>
</div>
</div>
<section>
stuff sits below
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam mollis ultrices placerat. Duis at bibendum urna. Vestibulum augue ex, lacinia vitae orci consectetur, elementum congue neque. Proin sed rhoncus felis. Donec justo arcu, iaculis eget sollicitudin sed, posuere nec mi. Cras sed ligula vel eros tincidunt interdum ac sit amet sapien. Curabitur rutrum felis id neque convallis iaculis. Sed viverra in magna sed mollis. Sed ac iaculis metus, vel pretium purus. Maecenas accumsan in ligula a vehicula. In sit amet tortor mi.
Cras pellentesque tempor ex id gravida. Pellentesque gravida ipsum eget dignissim ullamcorper. Nulla sagittis nibh et tortor tempor, quis pellentesque ligula tincidunt. Vivamus feugiat risus erat, ut efficitur nisi malesuada commodo. Suspendisse feugiat consequat massa at luctus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent ut purus et neque interdum mollis. Nulla interdum finibus lorem vitae laoreet. Duis accumsan dictum placerat. Cras et laoreet justo. Donec aliquet mattis eros ut placerat. Sed quis viverra diam.
</section>
解决方案
我可以建议您查找flexbox css
这是制作 2D 布局的好方法。
因为您 using div
's 而不是真实的<table></table>
我假设(如果我错了,请纠正我)您使用这种方式从 table css 属性形成布局。
html,
body {
height:100%;
margin:0;
padding:0;
}
#banner {
width:100%;
height:100%;
background:blue;
color:#ffffff;
}
.o-ds-table {
position:relative;
display:flex; /* I changed this */
width:100%;
margin:0 auto;
}
.o-ds-table-cell {
/* display:table-cell; not needed with flex */
padding:0 10px;
flex: 1; /* I changed this */
/* position:relative; not needed with flex */
border:2px solid blue;
background:yellow;
}
.cell-item-width-4 {
/* width:25%; not needed with flex */
}
.panel-item {
background:red;
height:100%;
/* display:block; not needed with flex */
}
p {
margin:0;
padding:0;
}
<section id="banner">
SCROLL DOWN!
</section>
<div class="o-ds-table">
<div class="o-ds-table-cell cell-item-width-4 panel-wrap">
<div class="panel-item">
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit. Mauris nec massa tortor. Lorem ipsum dolor sit amet consectetur adipiscing elit. Mauris nec massa tortor. Lorem ipsum dolor sit amet consectetur adipiscing elit. Mauris nec massa tortor.
</p>
</div>
</div>
<div class="o-ds-table-cell cell-item-width-4> panel-wrap">
<div class="panel-item">
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit.
</p>
</div>
</div>
<div class="o-ds-table-cell cell-item-width-4 panel-wrap">
<div class="panel-item">
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit.
</p>
</div>
</div>
<div class="o-ds-table-cell cell-item-width-4 panel-wrap">
<div class="panel-item">
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit.
</p>
</div>
</div>
</div>
<section>
stuff sits below
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam mollis ultrices placerat. Duis at bibendum urna. Vestibulum augue ex, lacinia vitae orci consectetur, elementum congue neque. Proin sed rhoncus felis. Donec justo arcu, iaculis eget sollicitudin sed, posuere nec mi. Cras sed ligula vel eros tincidunt interdum ac sit amet sapien. Curabitur rutrum felis id neque convallis iaculis. Sed viverra in magna sed mollis. Sed ac iaculis metus, vel pretium purus. Maecenas accumsan in ligula a vehicula. In sit amet tortor mi.
Cras pellentesque tempor ex id gravida. Pellentesque gravida ipsum eget dignissim ullamcorper. Nulla sagittis nibh et tortor tempor, quis pellentesque ligula tincidunt. Vivamus feugiat risus erat, ut efficitur nisi malesuada commodo. Suspendisse feugiat consequat massa at luctus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent ut purus et neque interdum mollis. Nulla interdum finibus lorem vitae laoreet. Duis accumsan dictum placerat. Cras et laoreet justo. Donec aliquet mattis eros ut placerat. Sed quis viverra diam.
</section>
一些额外的信息:https ://www.sketchingwithcss.com/samplechapter/cheatsheet.html
推荐阅读
- python - 这是一个错误还是我不明白什么?
- python - 如何对从 Pyinstaller 创建的应用程序进行代码设计以用于 Catalina 分发
- time-complexity - 平衡二叉搜索树的时间和空间复杂度
- excel - 条件为假时如何在 MS Excel IF 函数中跳过单元格
- string - Haskell如何实现拆分功能?
- javascript - Exporting Mongoose code in Node.js - pass value to callback from Mongoose method
- python - Tkinter,如何调整树视图缩进大小和指示箭头图像
- wordpress - 在 Google Cloud WordPress HA 上添加 SSL 使 wp-admin 无法访问
- css - 表格中的文本旋转在 Firefox 和 Chrome 上不起作用
- c - C中的行主要顺序作为命令行参数