Я новичок в 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>