Для границ 1px см. Решение Лениеля, которое использует border-style: double
. Это намного проще. Двойная граница - это та, которая показывает линию в 1 пиксель для внутреннего и внешнего краев границы. Это ничего не делает для границы 1px, но на> 1px есть разрыв.
Для границ> 1px вы удаляете нижнюю границу для всех <td>
с border-bottom: 0
. Верхние границы других ячеек сохранят все, как они должны выглядеть, за исключением последнего ряда. Последний ряд мы исправляем с помощью tr:last-child td { border-bottom: your border style }
. Наконец, в псевдоклассе при наведении курсора вы устанавливаете нижнюю границу.
http://jsfiddle.net/S9pkM/16/
table { border-collapse: collapse; } /*I am aware of separate */
table td { border: 1px solid black; width: 50px; height: 25px; padding: 5px; border-bottom: 0; }
table tr:last-child td { border-bottom: 1px solid black; }
table tr:hover td { border-top-color: red; border-bottom: 1px solid red; }
table tr:hover td:first-child { border-left-color: red; }
table tr:hover td:last-child { border-right-color: red; }