【发布时间】:2017-01-12 15:29:22
【问题描述】:
很难在标题中详尽地描述我的问题,所以我会尽量在描述中更清楚。
我使用<div> 构建一个表并应用CSS 属性display: table 等。故意避免语义<table> 方法。
一切正常,现在我正在尝试使用position: fixed 实现固定标头。结果是:
显然,应用于单元格其余部分的display: table-cell 会引发这种不受欢迎的行为。单元格会自动调整大小以适应新内容,并仅遵循我在 CSS 文件中应用的 min-width: 100px 规则。
这里是工作笔的链接:https://codepen.io/l_core/pen/ZLQEjq
有没有办法通过纯 CSS 方法实现标题和“正文”单元格之间的完美对齐?我可以尝试用 JS 重新计算宽度,但我确信有一种优雅的方法可以实现这一点,我想请教这里的专家如何做到这一点。
代码下方:
HTML
<!-- Row Container -->
<div class="row-container" id="row1">
<!-- Header cell container -->
<div class="cell cell-header" id="cell1">
<!-- Cell content container -->
<div class="cell-content">
<span>Cell</span>
</div>
</div>
<div class="cell cell-header" id="cell2">
<div class="cell-content">
<span>Cell</span>
</div>
</div>
<div class="cell cell-header" id="cell3">
<div class="cell-content">
<span>Cell</span>
</div>
</div>
<div class="cell cell-header" id="cell4">
<div class="cell-content">
<span>Cell</span>
</div>
</div>
<div class="cell cell-header" id="cell5">
<div class="cell-content">
<span>Cell</span>
</div>
</div>
CSS
#row1 {
position: fixed;
}
请查看我上面发布的钢笔以获取完整代码。我不确定将其全文发布是个好主意。
【问题讨论】:
-
你为什么不使用
<table>HTML。这就是它的用途。 -
感谢@Andrew 的回答。我故意避免使用语义
<table>方法。把它当作一个“个人项目”
标签: css flexbox css-position css-tables fixed-header-tables