为啥 <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"
添加到您的<table>
来明确指定边框环绕所有列和行,尽管我相信这是我见过的每个浏览器的默认设置。跨度>
【参考方案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 将无法识别边框属性。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
More information here.
至于您的问题,要么更改/定义 DOCTYPE,要么改用 CSS:
<table id="main_table" style="border: 1px solid #000;">
【讨论】:
文档类型不会在很长一段时间内阻止浏览器呈现 HTML 边框。以上是关于为啥 <table border="1"> 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
请问在html中<table border="1">是啥意思呢?
关于html和css,请问如何修改一下代码,让表格的第一行不显示边框呢? <table border="1" cellspacing="0"
如何在 CSS 中模仿 <table border="2" cellpadding="5" cellspacing="0" width