2015-11-26 5 views
1

Я использую следующие CSS для достижения эффекта подсветки на строке таблицы в настоящее время парил:Верхняя и нижняя границы в строке таблицы: только нижняя граница стилизованных

#container table { 
    border-collapse: collapse; 
} 
#container table td { 
    border: 2px solid white; 
} 
#container table tr:hover td { 
    border-top: 2px solid #999; 
    border-bottom: 2px solid #999; 
} 

На всех, кроме самого верхнего TBODY строка только нижняя граница в стиле с #999. Верхний ряд правильно показывает две границы. Похоже, что белая нижняя граница предыдущего ряда покрывает серое верхнее положение зависающего (проверено в FF 42). Есть ли способ получить это право?

JSFiddle

+1

Можете ли вы предоставить JSFiddle с таблицей выборки включены? –

+0

Вот вы. :-) –

ответ

2

Попробуйте это:

#container table { 
    border-collapse: collapse; 
} 
#container table td { 
    border-top: 2px solid #FFF; 
} 
#container table tr:hover td { 
    border-top: 2px solid #999; 
    border-bottom: 2px solid #999; 
} 

DEMO: https://jsfiddle.net/4g2w420o/5/

+0

Вот и все. Большое спасибо. –

+0

Добро пожаловать. ;) –

1

Попробуйте, это работает правильно JSFIDDLE

#container table { 
    border-collapse: collapse; 
} 
#container table td { 
    /*border: 2px solid white; I have commented this */ 
} 
#container table tr:hover td { 
    border-top: 2px solid #999; 
    border-bottom: 2px solid #999; 
} 
+0

Таким образом, строки/ячейки таблицы не имеют границы, поэтому, если вы наводите на них курсор, они видят смещение. Вот почему я разместил эту часть CSS там. –

+0

Хорошая работа hmd. Я думаю, вы правы. @ some-non-descript-user Чтобы сделать границу, вы можете сделать ее прозрачной. –

+0

Не работает. По крайней мере, не в FF42. –

1

Как насчет этого?

https://jsfiddle.net/4g2w420o/6/

<div id="container"> 
<table> 
    <tr><td>ABC</td><td>DEF</td></tr> 
    <tr><td>ABC</td><td>DEF</td></tr> 
    <tr><td>ABC</td><td>DEF</td></tr> 
</table> 
</div> 

#container table { 
    border-spacing: 0px; 
    border-collapse: separate; 
} 
#container table tr td { 
    border-top: 2px solid transparent; 
    border-bottom: 2px solid transparent; 
} 
#container table tr:hover td { 
    border-top: 2px solid #999; 
    border-bottom: 2px solid #999; 
} 
+0

Это замечательно. Почти то, что я намеревался. Но границы разделены, и вы можете видеть переход от одной строки к другой. Мне нравится решение @Gabriel Augusto. +1 –

Смежные вопросы