javascript - `display: table-cell` div 忽略`overflow: hidden`
问题描述
我试图通过在DOM 元素上定义一个width
属性来限制列的宽度。div.dcolumn
但是,由于某种原因,这似乎不适用于溢出的单元格。我希望隐藏溢出的单元格的内容(例如9px
列)并根据指定的宽度值保留布局。我有哪些选择?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html style='height:100%'>
<head>
<style>
.header {
background-color: #eeeeee;
padding: 0 0 0 0;
border: 1px solid #cccccc;
cursor: default;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
overflow: hidden;
}
.dtable {
display: table;
position: relative;
table-layout: fixed;
}
.drow {
display: table-row;
}
.dcell {
display: table-cell;
overflow: hidden;
padding: 0 0 0 0;
border: 1px solid #cccccc;
cursor: default;
}
.dcolumn {
display: table-column;
}
</style>
</head>
<body>
<div class="dtable" style="top: 0px; left: 0px; height: 125px;">
<div class="dcolumn" style="width: 39px;"></div>
<div class="dcolumn" style="width: 19px;"></div>
<div class="dcolumn" style="width: 9px;"></div>
<div class="dcolumn" style="width: 39px;"></div>
<div class="dcolumn" style="width: 19px;"></div>
<div class="drow header" style="height: 25px;">
<div class="dcell">0</div>
<div class="dcell">1</div>
<div class="dcell">2</div>
<div class="dcell">3</div>
<div class="dcell">4</div>
</div>
<div class="drow" style="height: 25px;">
<div class="dcell">0:0</div>
<div class="dcell">0:1</div>
<div class="dcell">long line not truncated</div>
<div class="dcell">0:3</div>
<div class="dcell">0:4</div>
</div>
<div class="drow" style="height: 25px;">
<div class="dcell">1:0</div>
<div class="dcell">1:1</div>
<div class="dcell">1:2</div>
<div class="dcell">1:3</div>
<div class="dcell">1:4</div>
</div>
</div>
</body>
</html>
解决方案
在这里,我添加了一个用于获得省略号效果的<span>
内部.dcell
,因为它不会直接在.dcell
. .dcell
在这种情况下还添加了宽度25px
。
这应该适合你。
.header {
background-color: #eeeeee;
padding: 0 0 0 0;
border: 1px solid #cccccc;
cursor: default;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
overflow: hidden;
}
.dtable {
display: table;
position: relative;
table-layout: fixed;
}
.drow {
display: table-row;
}
.dcell {
display: table-cell;
overflow: hidden;
width: 25px;
padding: 0 0 0 0;
border: 1px solid #cccccc;
cursor: default;
}
.dcolumn {
display: table-column;
}
.cell-data {
display:block;
width:inherit;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
<div class="dtable" style="top: 0px; left: 0px; height: 125px;">
<div class="dcolumn" style="width: 39px;"></div>
<div class="dcolumn" style="width: 19px;"></div>
<div class="dcolumn" style="width: 9px;"></div>
<div class="dcolumn" style="width: 39px;"></div>
<div class="dcolumn" style="width: 19px;"></div>
<div class="drow header" style="height: 25px;">
<div class="dcell">0</div>
<div class="dcell">1</div>
<div class="dcell">2</div>
<div class="dcell">3</div>
<div class="dcell">4</div>
</div>
<div class="drow" style="height: 25px;">
<div class="dcell">0:0</div>
<div class="dcell">0:1</div>
<div class="dcell">
<span class="cell-data">long line not truncated</span></div>
<div class="dcell">0:3</div>
<div class="dcell">0:4</div>
</div>
<div class="drow" style="height: 25px;">
<div class="dcell">1:0</div>
<div class="dcell">1:1</div>
<div class="dcell">1:2</div>
<div class="dcell">1:3</div>
<div class="dcell">1:4</div>
</div>
</div>
推荐阅读
- html - 什么决定了 Firefox 中滚动条是否有颜色?
- docker - 当图像已经可用时,无法在本地找到图像“jmeter:latest”
- python - 流程完成后如何更新切换按钮的状态?
- axapta - Axapta V4 上的数字序列事件规则问题
- python - Scrapy FilesPipeline 避免在不同的爬取运行中重新下载文件(谷歌云存储)
- python - 在python中重塑数据框/多个'n'图
- c++ - 如何在 jthread 中传递带有参数和 stop_condition 的函数?
- sql - 如果 FK 为空或 Null,则 MariaDB 表大小
- python - 我在编写有关运动规划的代码时遇到了这个错误。如何获得它?
- javascript - 使用函数作为反应钩子?