为啥 <table border="1"> 不起作用?

Posted

技术标签:

【中文标题】为啥 <table border="1"> 不起作用?【英文标题】:Why does <table border="1"> not work?为什么 <table border="1"> 不起作用? 【发布时间】:2012-03-19 09:07:07 【问题描述】:

我已经这样定义了我的表:

<div id="a">
    <table id="main_table" border="1">
        <tr>
            <th>Jobs</th>
            <th>Customers</th>
        </tr>
    </table>
</div>

从示例here 我假设看到表格周围的边框和表格中的所有单元格。这最近多次对我不起作用。有谁知道为什么?我正在谷歌浏览器中查看。

** 编辑 **

谢谢大家,我最初没有提到这是我嵌入在 Joomla 网站中的表格,如下所述,border="1" 确实可以正常工作。但由于它没有工作,我总是使用 CSS。它只是一直困扰着我,简单的border="1" 不起作用。必须在 Joomla 主题的 CSS 中关闭各个边框。 .

【问题讨论】:

Works for me 我会尝试在 CSS 中做到这一点。 @thescientist:不是这样。边框属性,虽然纯粹是展示性的,但非常简单地实现了纯 CSS 几乎不可能实现的事情(在所有单元格和表格本身周围获得单个边框,并考虑间距、折叠等)。因此,我倾向于仍然使用边框属性。 您还可以通过将rules="all" 添加到您的&lt;table&gt; 来明确指定边框环绕所有列和行,尽管我相信这是我见过的每个浏览器的默认设置。跨度> 【参考方案1】:

这是一种在桌子周围放置边框的旧方法。在表格和单元格周围放置边框的更好方法是使用 CSS:

​table, td 
    border-collapse: separate;
    border: 1px solid #999;
​

jsFiddle example

【讨论】:

【参考方案2】:

我不是在这里讨论旧方式与新方式或哪种方式更好。只是说...

据我所知,table 元素的边框属性在 html5 中仍然是标准的,并没有被“淘汰”。 (参见:http://www.w3schools.com/html5/tag_table.asp 和 http://www.w3.org/TR/html5/tabular-data.html#attr-table-border)

虽然有可能,但我非常怀疑这是 DOCTYPE 问题。我尝试了你的示例代码(我在你打开的 div 中添加了一个结束标记),边框在包括 Chrome 在内的各种当前浏览器中显示得很好。

我认为您可能在您的代码中使用了一些全局 CSS 或其他内容,但此处未特别提及。

为了澄清,我使用了这个带有严格 DTD 和所有内容的确切代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>

<head>
    <title>test</title>
</head>

<body>
<div id="a">
<table id="main_table" border="1">
    <tr>
        <th>Jobs</th>
        <th>Customers</th>
    </tr>
</table>
</div>
</body>

</html>

边框出现在 FF、IE8 和 Chrome 中。

HTML5 支持此属性为 1 或空字符串。

【讨论】:

在明确添加该 DOCTYPE 标记后为我工作。谢谢?【参考方案3】:

在应用的样式表中有一些东西会关闭边框。我猜这可能是一些人和组织喜欢的通用“重置 CSS”样式表,例如经常被复制的 Eric Meyer 的 Reset CSS 将表格和单元格边框设置为 0。

【讨论】:

【参考方案4】:

这就是“过去”定义边界的方式,但随着新的 Web 标准(也称为 DOCTYPE)的出现,大多数过时的语法正在慢慢被淘汰。所以总而言之,这可能是因为您正在使用的 DOCTYPE(或缺少它)。例如,DOCTYPE Strict 将无法识别边框属性。

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

More information here.

至于您的问题,要么更改/定义 DOCTYPE,要么改用 CSS: &lt;table id="main_table" style="border: 1px solid #000;"&gt;

【讨论】:

文档类型不会在很长一段时间内阻止浏览器呈现 HTML 边框。

以上是关于为啥 <table border="1"> 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

请问在html中<table border="1">是啥意思呢?

struts2为啥找不到action啊

如何给table表格的tr行加边框

怎么隐藏table所有边框

关于html和css,请问如何修改一下代码,让表格的第一行不显示边框呢? <table border="1" cellspacing="0"

如何在 CSS 中模仿 <table border="2" cellpadding="5" cellspacing="0" width