【发布时间】:2012-06-08 03:38:34
【问题描述】:
我是 CSS 新手,正在开发一个可在现代标准浏览器中呈现的内部网络应用程序(IE 支持是不是必要的)。我花了很多时间在这个网站和其他网站上寻找答案,只是为了找到答案“这是不可能的,因为......”或“改为做这个黑客......”但我不会接受。
这是我需要的:
- 具有一个标题行和多个正文行的表格;
- 标题行下方的实线边框;
- 仅在标题行和第一个正文行之间有垂直空白(填充?边距?间距?);
- 鼠标悬停时突出显示正文行。
在我为表格设置 border-collapse: collapse; 样式之前,我无法看到 (2)。美好的。但是 (3) 显然只适用于border-spacing,并且只适用于<td> 元素(不是<tbody> 或<tr>),无论如何都会被collapse 禁用。同时,由于一些不可知的原因,<thead>、<tr> 或<th> 元素无法识别margin,但在body 的<td> 作品的第一行有padding-top,除了它没有,因为当我将鼠标悬停在第一行上时,整个 margin-which-is-implemented-as-padding 也会突出显示,这让我感到恶心。
我知道在表格的标题和正文之间有几个像素的边距就像是一个非常左的字段,为什么-任何人都想要-想要的东西,但是我应该告诉你什么?我不是便宜的约会对象。
请尽可能粗暴和居高临下地指出我在理解 CSS 方面的愚蠢,如果你也 1) 说出如何在不更改标记的情况下进行操作(从而保持表示的分离从内容 CSS 显然是为了鼓励)或 2)同意我的观点,CSS 很奇怪。
<head><style>
table {
border-collapse: collapse;
border-spacing: 0;
}
thead {
border-bottom: 4px solid #123456;
}
/*** something goes here ***/
tbody tr:hover {
background-color: #ABCDEF;
}
</style></head>
<body>
<table>
<thead>
<tr><th>Fruit</th><th>Color</th><th>Yummy?</th></tr>
</thead>
<tbody>
<tr><td>Apple</td><td>Green</td><td>Yes</td></tr>
<tr><td>Banana</td><td>Yellow</td><td>Yes</td></tr>
<tr><td>Pear</td><td>Brown</td><td>Yes</td></tr>
</tbody>
</table>
</body>
【问题讨论】:
标签: css html-table row border margin