html - 设置 HTML 表格中单行的样式

标签 html css

我正在开发一个 asp.net mvc 3 应用程序。我正在使用表显示数据库中的数据。基本上,该表有 4 列,但在某些情况下,整行可能有 2 甚至 1 列。通过使用 if 语句,我可以捕获这些情况并正确管理它们(使用 colspan 更具体),因此我可以保持表的结构干净。然而,我真的很想用一些 CSS 来改变(如果可能的话)一个默认行为。

当我一行中有两列时,我希望每列恰好占据该行整个宽度的 50%。为了让自己更清楚,这是我现在看到的:

Table

在最底部,实际上这也是表格的末尾,但仍然是同一个表格的一行,两个字符串在此处登录。正如您所看到的,左边的空间比右边的空间小很多。一开始,我使用不同的表来管理此类内容,但我真的希望将所有内容保留在一个表中,并在必要时调整当前行上单元格的宽度。我可以确定这一行,我可以向它附加一些类,我只是不知道使用什么CSS来使每个单元格占据相同的空间(当然是否可以做到这一点)

附注

抱歉,这是我在 View 中用来渲染此行的代码(Razor):

<tr>          
        @if (!string.IsNullOrEmpty(Model[0][0].FieldValue))
        { 
            <td colspan="2">
            @Html.DisplayFor(x => x[0][0].FieldValue)
            </td>
        }
        else
        { 
            <td colspan="2">
            Sign in here
            </td>
        }         

        @if (!string.IsNullOrEmpty(Model[1][0].FieldValue))
        { 
            <td colspan="2">
            @Html.DisplayFor(x => x[1][0].FieldValue)
            </td>
        }
        else
        { 
            <td colspan="2">
            Sign in here
            </td>
        }        

</tr>

最佳答案

在没有任何附加样式的情况下,HTML 表格将尽可能构造其单元格宽度以容纳整个列中的数据。没有任何方法可以专门设置从一行到下一行的单元格宽度样式。

因此,如果您想让两个单元格各下降 50%(而其他行的单元格(使用这些单元格的地方)宽度不相等),那么最好的选择是注入(inject)一个额外的表(无论父 colspan 是什么),具有一行、两列,每列设置为 50% 宽度。

我确信您可以将其提取到当前逻辑(以及外部 CSS 文件)中,但生成的标记将类似于:

<td colspan="x">
    <table>
        <tr>
            <td style="width:50%">cell content here</td>
            <td style="width:50%">cell content here</td>
        </tr>
    </table>
</td>

关于html - 设置 HTML 表格中单行的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522229/

相关文章:

jquery - 获取同一行中的所有 <td>

html - 背景没有覆盖整个区域

html - Bootstrap 3/FlatUI - 居中 Logo ->导航链接堆叠?

html - 在具有 html 元素的表中删除一行 [文本框、组合框等]

javascript - 隐藏单选按钮直到满足条件

javascript - 设置每个图像在不同时间的间隔

javascript - 如何在不通过 HTTP 加载图像的情况下在 HTML 中显示 'Reload' 符号?

css 用 meteor 声明变量

css - Sass Mixin Modulo 无法正常工作

css - (例如)p.post {color : #336;} and . post p {color : #336;}? 之间有什么区别