【问题标题】:Styling table rows as headings将表格行样式化为标题
【发布时间】:2018-11-13 07:06:09
【问题描述】:

我正在开发一个针对旧手机的移动网站,这些手机对 CSS \ html 的支持有限,因此我正在恢复使用表格。

我要在特定页面上实现的目标是在表中创建一个带有特定值标题的行,然后在同一个表中创建另一行,其中包含该值和一个编辑链接

问题是标题只跨越一列,我希望能够对其进行样式设置,以便有一些填充和边距以及边框。

有人可以就如何做到这一点提供一些建议吗?

HTML

<div class="navalt">
    <table style="width:100%;">
        <tbody>
        <tr class="edHeading">
            <td><fmt:message key="editprofile.location"/></fmt:message></td>
        </tr>
        <tr>
            <td class="leftTd">USA</td>
            <td class="rightTd"><a href="">Edit</a></td>
        </tr>

CSS

.navalt {
    text-align:center;
    padding: 4px 0px 4px 4px;
    border-top: thin solid #C5C9D1;
    border- bottom: thin solid #C5C9D1;
}
.edHeading {
    padding: 4px 0px 4px 4px;
    background-color:#E9E1FF;
}
.leftTd {
    border-right: thin solid #C5C9D1;
    padding: 0px 0px 0px 5px;
    text-align:left;
    width:50%;
}
.rightTd {
    padding: 0px 5px 0px 0px;
    text-align:right;
    width:50%;
}

【问题讨论】:

    标签: html css html-table


    【解决方案1】:

    正如 Wabs 所说,您可以在标题中为您的 td 添加一个 colspan。

    另一种可以让您更多地分离样式的方法是使用 thead 标签 - 看到您使用了 &lt;tbody&gt; 这会更有意义。

    另外 - 作为旁注,你的 divbodytable 没有结束标签 - 虽然我认为这是因为你只复制了部分代码..?

    这是一个小提琴:http://jsfiddle.net/f6NKt/2/

    代码如下:

    HTML

    <table style="width:100%;">
     <thead>
        <tr>
        <th colspan="2">Heading - location use th tags</th>
       </tr>
     </thead>
     <tbody>
    <tr>
        <td class="leftTd">USA</td>
        <td class="rightTd"><a href="">Edit</a></td>
        </tr>
    </tbody>
     </table>
    

    CSS - 注意使用 thead 代替

    .navalt {text-align:center;padding: 4px 0px 4px 4px;border-top: thin solid #C5C9D1;border- bottom: thin solid #C5C9D1;}
    
    thead {padding: 4px 0px 4px 4px;background-color:#E9E1FF;}
    thead th {font-size:20px;}
    
    .leftTd {border-right: thin solid #C5C9D1;padding: 0px 0px 0px 5px;text-align:left;width:50%;}
    
    .rightTd {padding: 0px 5px 0px 0px;text-align:right;width:50%;}
    

    【讨论】:

    • 谢谢,这正是我所需要的
    • 是的,只是忘了复制它们
    • 出于兴趣,我刚刚发现你可以完全放弃 thead css 而只是设置样式
    • 是的,您也可以删除 tbody。虽然为了将表格的每一部分分成自己的责任,但将它们放入其中总是很好。它还允许您以不同的方式定位标签,例如 td,例如 tbody td {myBodycellStyle}thead td {myheadcellsyle} - 这种方式您无需定义自己的自定义类来定位不同的TD
    【解决方案2】:

    除非我遗漏了一些东西,否则你能不能将 colspan=2 添加到标题 &lt;td&gt; 以便它跨越整个表格?

    <tr class="edHeading"><td colspan="2"><fmt:message key="editprofile.location"/></td></tr>
    

    【讨论】:

    • 试过了,它解决了跨越的问题,但我仍然无法弄清楚如何最好地实现该标题的样式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多