绘制HTML表格边框

时间:2013-08-07 12:37:47

标签: asp.net css

我想在HTML页面上绘制表格的边框:

HTML

<asp:Table>
    <asp:TableRow CssClass="columnHeader">
        <asp:TableCell BorderWidth="0px" BackColor="White"></asp:TableCell>
        <asp:TableCell ColumnSpan="3" ><asp:Label ID="lbl_Dimension" runat="server" >Dimension in CM</asp:Label></asp:TableCell>
        <asp:TableCell ColumnSpan="2" ><asp:Label ID="lbl_Weight" runat="server" >Weight in KG</asp:Label></asp:TableCell>
        <asp:TableCell ><asp:Label ID="lbl_Volume" runat="server" >Volume</asp:Label></asp:TableCell>
    </asp:TableRow>
    <asp:TableRow CssClass="columnHeader">
        <asp:TableCell BorderWidth="0px" BackColor="White"></asp:TableCell>
        <asp:TableCell ><asp:Label /></asp:TableCell> (x6)
    </asp:TableRow>
    <asp:TableRow>
        <asp:TableCell CssClass="rowHeader"><asp:Label ID="lbl_Pallet" runat="server" >Pallet</asp:Label></asp:TableCell>
        <asp:TableCell ><asp:Label /></asp:TableCell> (x6)
    </asp:TableRow>
    <asp:TableRow >
        <asp:TableCell CssClass="rowHeader"><asp:Label ID="lbl_Master" runat="server" >Master</asp:Label></asp:TableCell>
        <asp:TableCell ><asp:Label /></asp:TableCell> (x6)
    </asp:TableRow>
    <asp:TableRow>
        <asp:TableCell CssClass="rowHeader"><asp:Label ID="lbl_Inner" runat="server" >Inner</asp:Label></asp:TableCell>
        <asp:TableCell ><asp:Label /></asp:TableCell> (x6)
    </asp:TableRow>  
</asp:Table>

CSS

.drawBorder table
{
    border: 0 solid Black;
    border-spacing: 0;
    margin-top: 30px;
    border-collapse: collapse;
}
.drawBorder th, .drawBorder td
{
    border: 1px solid Black;
    width: 80px;
}
.rowHeader
{
    background-color: #f4e8d0;
    font-weight: bold;
}
.columnHeader
{   
    text-align: center;
    background-color: #f4e8d0;
    border: 1px solid Black;
    font-weight: bold;
}

IE上的结果

enter image description here

Chrome上的结果

enter image description here

所以...两个问题:

  • 为什么IE在我的第一行没有ColSpan
  • 为什么border-collapse: collapse;不起作用?

(我不会写完整的HTML代码,因为我无法发布大部分代码消息......)

1 个答案:

答案 0 :(得分:1)

我根据您的情景创建了这个小提琴:http://jsfiddle.net/YVEsJ/1/

在IE和Chrome上看起来一样。 border-collapse按预期工作。

你得到意想不到的结果的原因可能是因为某些额外的css风格。从我上面链接的小提琴开始,然后按照你的风格向上工作。

更好的是,我建议您创建一个纯HTML table而不是服务器端控件(asp:table)。这是因为服务器端控件会吐出额外的HTML属性,这些属性可能会覆盖你的css。如果需要,请在单元格内使用服务器端控件作为标签。最好还是将spanrunat="server"一起使用。