A borda ao redor do elemento tr não aparece?

107

Parece que o Chrome / Firefox não renderiza bordas tr, mas renderiza a borda se o seletor estiver table tr td.

Como posso definir uma borda em um tr?

Minha tentativa, que não funciona:

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

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

Esta é uma questão semelhante: definir a borda da tabela tr, funciona em tudo, exceto no IE 6 e 7 , mas parece funcionar em qualquer lugar, exceto no IE.

edi9999
fonte
2
Estou usando o Firefox e não vejo uma borda
Speedysnail6,

Respostas:

255

Adicione isto à folha de estilo:

table {
  border-collapse: collapse;
}

JSFiddle .

O motivo pelo qual ele se comporta dessa maneira é, na verdade, muito bem descrito na especificação :

Existem dois modelos distintos para definir bordas nas células da tabela em CSS. Um é mais adequado para as chamadas bordas separadas em torno de células individuais, o outro é adequado para bordas que são contínuas de uma extremidade da tabela à outra.

... e mais tarde, para collapsedefinir:

No modelo de borda recolhível, é possível especificar bordas que circundam toda ou parte de uma célula, linha, grupo de linhas, coluna e grupo de colunas.

Raina77ow
fonte
2
Por que exatamente a fronteira foi escondida?
edi9999
4
Porque é assim que separate- padrão - o modelo de borda da tabela funciona: você especifica bordas para cada célula. Vou atualizar a resposta com citações da documentação.
raina77ow
1
@ edi9999 - Eu recomendo usar uma folha de estilo de redefinição. Confira http://www.cssreset.com/
Black Sheep de
2
A explicação específica de por que a borda foi ocultada é esta declaração na especificação CSS citada, apresentada como aplicável no modelo de bordas separadas: “Linhas, colunas, grupos de linhas e grupos de colunas não podem ter bordas (ou seja, os agentes do usuário devem ignorar a borda propriedades para esses elementos). ”
Jukka K. Korpela de
Jogar com seu exemplo de violinista ajudou, obrigado;)
Zeek2