简体   繁体   中英

Border around tr element doesn't show?

It seems like Chrome/Firefox do not render borders on tr , but it renders the border if the selector is table tr td .

How can I set a border on a tr?

My try, which doesn't work:

 table tr { border: 1px solid black; }
 <table> <tbody> <tr> <td> Text </td> </tr> </tbody> </table>

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

This is a similar question: Set border to table tr, works in everything except IE 6 & 7 , but it seems to work everywhere except for IE.

Add this to the stylesheet:

table {
  border-collapse: collapse;
}

JSFiddle .

The reason why it behaves this way is actually described pretty well in the specification :

There are two distinct models for setting borders on table cells in CSS. One is most suitable for so-called separated borders around individual cells, the other is suitable for borders that are continuous from one end of the table to the other.

... and later, for collapse setting:

In the collapsing border model, it is possible to specify borders that surround all or part of a cell, row, row group, column, and column group.

Besides what top answer says, you should also make sure your border has visible style, for example:

border-style: solid;

if you are adding custom styles to some website.

It is possible to emulate border in table border collapse separate mode with css box-shadow:

table tr {
  box-shadow: 0 0 4px #ccc;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM