我是 CSS 新手,正在开发一个将在现代标准浏览器中呈现的 intraweb 应用程序(不需要 IE 支持)。我花了很多时间在这个网站和其他网站上寻找答案,只是为了找到答案“这是不可能的,因为......”或“改为做这个黑客......”但我不会接受。
这是我需要的:
- 具有一个标题行和多个正文行的表格;
- 标题行下方的实线边框;
- 仅在标题行和第一个正文行之间的垂直空白(填充?边距?间距?);
- 鼠标悬停时突出显示正文行。
在我为 table 设置样式之前,我无法看到 (2) border-collapse: collapse;
。美好的。但是 (3) 显然只适用于border-spacing
,并且只适用于<td>
元素(不是<tbody>
或<tr>
),它无论如何都被collapse
. 同时,由于某些不可知的原因,,或元素margin
无法识别 's ,但在 body 的作品的第一行却没有,因为当我将鼠标悬停在第一行上时,整个页边距- which-is-implemented-as-也被突出显示,这让我感到恶心。<thead>
<tr>
<th>
padding-top
<td>
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>