Я новичок в CSS и работаю над внутрисетевым приложением, которое будет отображаться в современных стандартных браузерах (поддержка IE не нужна). Я потратил много времени на поиск ответов на этом и других сайтах, только чтобы найти ответы "Это невозможно, потому что..." или "Сделать этот взлом вместо этого....", но я просто не соглашусь с этим.
Вот что мне нужно:
- Таблица с одной строкой заголовка и несколькими строками тела;
- Твердая граница в строке заголовка;
- Вертикальное белое пространство (пробел? margin? spacing?) только между строкой заголовка и первой строкой тела;
- Строки тела выделяются при наведении мыши.
Я не мог получить (2), чтобы быть видимым, пока не назову таблицу border-collapse: collapse;
. Хорошо. Но (3), по-видимому, работает только с border-spacing
, и только на элементах <td>
(не <tbody>
или <tr>
), которые в любом случае отключены с помощью collapse
. Между тем, по какой-то непонятной причине margin
не распознаются для элементов <thead>
, <tr>
или <th>
, но имеет padding-top
в первой строке тела <td>
, за исключением того, что он не, потому что, когда я курсирую над этой первой строкой, все выделение, которое-реализовано-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>