2013-09-07 4 views
61

Кажется, что Chrome/Firefox не отображают границы на tr, но он отображает границу, если селектор table tr td.Граница вокруг элемента tr не отображается?

Как установить границу на tr?

Моя попытка, которая не работает:

HTML

<table>  
    <tbody> 
     <tr> 
      <td> 
       Text 
      </td> 
     </tr> 
    </tbody> 
</table> 

CSS

table tr 
{ 
    border:1px solid black; 
} 

http://jsfiddle.net/edi9999/VzPN2/

Это simila r вопрос: Set border to table tr, works in everything except IE 6 & 7, но он работает везде, кроме IE.

+2

Я использую Firefox, и я не вижу границы – Speedysnail6

ответ

155

Добавьте это к таблице стилей:

table { 
    border-collapse: collapse; 
} 

JSFiddle.

Причина, почему он ведет себя таким образом, на самом деле описано довольно хорошо в the specification:

Есть две различные модели для установки границ на ячейки таблицы в CSS. Один из них наиболее подходит для так называемых разделенных границ вокруг отдельных ячеек, другой подходит для границ, которые являются непрерывными от одного конца стола до другого.

... а затем, для collapse установки:

В разрушающейся модели границы, можно задать границы, которые окружают все или часть ячейки, строки, группы строк, столбец , и колонка группа.

+1

Почему именно граница была скрыта? – edi9999

+2

Так как работает 'separate' - default-table border model: вы указываете границы для каждой ячейки. Я обновляю ответ с помощью цитат из документации. – raina77ow

+1

@ edi9999 - Я рекомендую использовать таблицу стилей сброса. Проверьте это [http://www.cssreset.com/](http://www.cssreset.com /) – aldanux

-10
<tr border="1"> 

или

<table border="1"> 

должен работать.

Если вы хотите сделать это с помощью CSS, возможно, было бы лучше сделать это с классом или

<tr style="border 1px solid black"> 
+0

'<тр стиль =«граница 1px сплошной черный»> и' <тр граница = «1»> 'не работает – edi9999

+0

Хорошо жаль об этом – Speedysnail6

+1

неправильный syntex он должен быть , и это можно сделать. –