【问题标题】:How to add padding to the top and bottom cell of a dynamically generated table?如何在动态生成的表格的顶部和底部单元格中添加填充?
【发布时间】:2017-12-18 18:57:17
【问题描述】:

我有一个动态生成的表,即它的单元格的内容是从数据库中提取的,每一行的创建取决于数据库中有多少行。

每个单元格都有一个圆形边框和内边距,比如 2px。

我想要的效果是所有单元格看起来均匀分布并垂直填充。

问题是,我无法通过 Google 搜索或查看 Stack Exchange 来解决,顶部和底部的单元格似乎分别具有较少的“顶部”和“底部”填充。比其他单元格,因为它们没有添加“相邻”单元格的填充。

有没有办法只在顶部单元格中添加额外的“padding-top”,而只在底部单元格中添加“padding-bottom”,或者我是不是走错了路?

ps:另一个考虑是表格被边框包围,因此解决方案需要以可以保持现有边框(或应用它们)的方式添加空间。

pps:表的代码结构为:

<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
    <thead>
        <tr>
            <th width="268px">column one</th>
            <th width="156px">column two</th>
            <th width="188px">column three</th>
            <th width="70px">column four</th>
            <th width="62px">column five</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td colspan="5" class="Tables_empty">loading data</td>
        </tr>
    </tbody>
    <!--<tfoot>
        <tr>
            <th>column one</th>
            <th>column two</th>
            <th>column three</th>
            <th>column four</th>
            <th>column five</th>
        </tr>
    </tfoot>-->
</table> 

【问题讨论】:

    标签: css html-table cellpadding


    【解决方案1】:

    具体是哪些单元格?

    对于第一行和最后一行中的所有单元格:

    table#example tbody tr:first-child td, table#example tbody tr:last-child td { padding: 10px 5px } /* moar padding */
    

    对于每一行的第一个和最后一个单元格:

    table#example tbody tr td:first-child, table#example tbody tr td:last-child { padding: 10px 5px } /* moar padding */
    

    【讨论】:

    • 这人真是个天才!谢谢你!我现在正在使用这个: table#example tbody tr:first-child td {padding: 10px 0 0 0} LINE RETURN HERE table#example tbody tr:last-child td { padding: 0 0 10px 0} 它是运行良好!
    • 哦,我没有意识到您可以如此具体,而且我确实需要准确定义哪些单元格。所以,我希望这是有道理的,我希望能够将 padding-top 添加到第一行中的所有单元格,并将 padding-bottom 添加到最后一行中的所有单元格。但是我想如果我只是将 padding-top 应用于第一行的第一个单元格并将 padding-bottom 应用于最后一行的第一个单元格,那么它将具有相同的效果,所以这就是我想要做的。任何帮助表示赞赏,谢谢。
    • 好的,现在已经整理好了,再次非常感谢您,最后我选择了table#example tbody tr:first-child td {padding: 6px 10px 3px 6px} table#example tbody tr:last-child td { padding: 3px 10px 6px 6px}。这有点复杂,因为第一列使用现有类对其应用了样式,并且整个表也有单独的 td 样式,但我最终让它工作了。谢谢。
    【解决方案2】:

    嗨,现在你的 css 中已经习惯了这个

    td{
    padding:xxpx xxpx xxpx xxpx; // acording to your design 
    }
    

    【讨论】:

    • 感谢您的回复,我相信这将为每个单元格添加填充,而不仅仅是顶部和底部单元格。使用它仍然会导致顶部和底部单元格看起来像它们分别具有顶部和底部填充的一半。因为它们没有上下相邻单元格的填充。
    • @user1063287 要将样式应用于底部和顶部单元格,您还需要将样式应用于th 元素,因为这些元素用于页眉和页脚:table.display td, table.display th { padding: XXpx XXpx XXpx XXpx }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 2017-11-18
    • 2012-07-15
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多