【问题标题】:Is it ok to use cellpadding="2" cellspacing="2" in <table>?<table> 中可以使用 cellpadding="2" cellspacing="2" 吗?
【发布时间】:2010-03-10 05:38:32
【问题描述】:

&lt;table&gt; 中使用cellpadding="2" cellspacing="2" 可以吗?或者这些是 W3C 不推荐的,并且根据网络标准不正确?

CSS 中有哪些替代方案?

更新:用&lt;td align="right" valign="top"&gt;也可以吗?

我的问题是关于内容和表示的分离以及 W3C 建议。

更新According to this chart&lt;table&gt; 中只有 alignbgcolor 在严格版本中是不允许的。那么允许&lt;table&gt;的其他属性可以吗?

alt text http://shup.com/Shup/293811/11021055643-My-Desktop.png

【问题讨论】:

标签: css xhtml w3c semantic-markup


【解决方案1】:

不,这些属性并未被正式弃用,但它们通常不受欢迎,因为您应该使用 CSS 进行表示。

对于cellpadding,您可以在 CSS 中轻松地将其替换为 padding

table.classname td {
  padding: 4px;
}

对于cellspacing,先判断是否真的有必要。如果表格单元格上没有任何边框,或者您不希望每个单元格的边框之间有间距,那么它不是。 (我个人认为单元格间距在设计方面看起来很糟糕,但在某些情况下它可能很有用。)

这样做很好:

table {
  border-collapse: collapse;
}

然后每个表格单元格与其相邻单元格共享边框,这意味着您可以添加,例如,1px 的顶部和底部边框,并且您只需将每行分隔 1px。

但是,要分隔边框,您可以使用这个 CSS,尽管它在 IE6 中可能不起作用。

table.data td {
  border-collapse: separate;
  border-spacing: 4px;
}

【讨论】:

    【解决方案2】:

    虽然技术上没问题,但强烈不推荐。

    想象一下,如果您的网站在许多页面上有很多表格,并且您出于某种原因想要更改填充或间距。好吧,您必须浏览整个网站并进行更改。

    或者您可以使用 CSS 并通过在一个位置更改一行代码来更改您的整个网站。这不仅效率更高,而且更容易,帮助您避免错误并保持一致。

    <style type="text/css">
        table td { padding:10px; margin:10px; }
    </style>
    

    如果您想使用一些带有内边距和边距的表格而其他没有,您可以通过添加“.”在 CSS 中创建类。在您选择的名称之前:

    <style type="text/css">
        .myTable td { padding:10px; margin:10px; }
    </style>
    <table class="myTable> etc...
    

    请注意,类名区分大小写。您还可以使用许多其他属性,例如边框、背景颜色等...

    简而言之,虽然 cell-spacing 和 cell-padding 属性并未被弃用,但使用 CSS 更好地实现整个网站的易用性和一致性。

    【讨论】:

      【解决方案3】:
      <style type="text/css">
      table.padded-table td { 
          padding:10px; 
          }
      </style>
      

      【讨论】:

        【解决方案4】:

        仍完全支持单元格填充和单元格间距属性。尽管有些人会告诉您使用 CSS 设置表格单元格的内边距和边距来做到这一点,但这仍然是将其应用于表格中的每个单元格的简单方法。

        如果您想要一个属性列表以及哪些属性已被弃用,我发现 w3schools 是最可靠的信息来源。

        w3schools: td tag

        w3schools: table tag

        【讨论】:

        • 您的意思是单元格填充和单元格间距未弃用且有效。
        • 是的,如果它没有被弃用,那么它就可以使用。如果你知道 deprecate 的定义:表示强烈反对。如果它没有被弃用,那么它就不会被拒绝。
        • 请注意,虽然这些属性在 HTML4 中有效,但它们将被 HTML5 淘汰。 dev.w3.org/html5/spec/obsolete.html#non-conforming-features
        猜你喜欢
        • 2012-06-26
        • 2018-03-29
        • 1970-01-01
        • 2011-11-11
        • 2011-08-28
        • 2012-03-02
        • 1970-01-01
        相关资源
        最近更新 更多