SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
27.02.2025

Otimizando Bordas em Linhas de Tabela em HTML com CSS

Resposta Rápida

Se você precisa destacar linhas específicas em uma tabela com uma borda, atribua uma classe CSS especial aos elementos tr correspondentes. Veja uma solução simples:

.borda-destacada {
  border: 2px solid #000;
}
<table>
  <tr class="borda-destacada">
    <td>Linha com uma borda</td>
  </tr>
</table>

Essa abordagem dá às linhas com a classe borda-destacada uma borda visível, melhorando a percepção visual do conteúdo sem afetar o restante da tabela.

Guia Detalhado para Criar Bordas

Usando outline em vez de Bordas Padrão

Uma alternativa às bordas padrão é a propriedade outline no CSS. Esta propriedade é útil ao lidar com problemas de bordas sobrepostas. Este método é especialmente prático ao lidar com células mescladas e quando há necessidade de evitar mudanças nas dimensões da tabela. Veja como pode ser:

.borda-especifica {
  outline: thin solid black; /* Quem disse que é impossível ficar sem bordas quando se tem outline? */
}
<table>
  <tbody class="borda-especifica">
    <tr>
      <td>Primeira linha com uma borda</td>
    </tr>
    <tr>
      <td>Segunda linha com uma borda</td>
    </tr>
  </tbody>
</table>

Para suporte em IE 6/7, recomenda-se definir a propriedade tr como display: table;.

Agrupando Linhas com Seções e Bordas Únicas

Usar tbody para agrupar linhas permite a criação de seções distintas com bordas únicas. Isso é muito útil se você precisar separar visualmente o conteúdo em blocos:

<table>
  <tbody class="borda-secao">
    <tr>
      <td>Seção 1, Linha 1</td>
    </tr>
    <!-- Outras linhas na primeira seção -->
  </tbody>
  <tbody class="borda-secao">
    <tr>
      <td>Seção 2, Linha 1</td>
    </tr>
    <!-- Outras linhas na segunda seção -->
  </tbody>
</table>

Gerenciando Bordas em Tabelas com Células Mescladas

Se a tabela contém células mescladas (rowspan e colspan), deve-se ter um cuidado especial ao controlar as bordas. É conveniente atribuir as classes necessárias a linhas individuais e gerenciar o estilo das células que contêm seu conteúdo td. Para seleção precisa de ordens de linha, use pseudoclasses CSS :nth-child() ou :nth-of-type():

tr:nth-child(even) td {
  border-bottom: 2px solid #000; /* Vamos dar um charme às linhas pares! */
}

Compatibilidade e Eliminação de Espaços Entre Células

É importante verificar a exibição da tabela em diferentes navegadores e definir cellspacing="0" para obter um visual polido. Se necessário, use colgroup, col ou tbody para alcançar soluções estilísticas específicas:

<table cellspacing="0">
  <colgroup>
    <col class="col-estilo" />  /* As colunas também querem se arrumar! */
    <!-- Outras colunas -->
  </colgroup>
  <!-- As linhas estarão aqui -->
</table>

Visualização

Você pode imaginar uma tabela como um jardim 🏞️ onde as seções para plantas individuais são as linhas:

Jardim (🏞️): 
| 🌷 🌿 🌷 | Primeira Linha
| 🌷 🌿 🌷 | Segunda Linha
| 🌺 🌿 🌺 | Terceira Linha 
| 🌺 🌿 🌺 | Quarta Linha
| 🌼 🌿 🌼 | Quinta Linha

Para destacar certas plantas, significando linhas (3 e 4), vamos criar um caminho (🛤️) ao redor delas entre as flores:

Jardim (🏞️) com um caminho (🛤️): 
| 🌷 🌿 🌷 |
| 🌷 🌿 🌷 |
🛤️| 🌺 🌿 🌺 |🛤️ Terceira Linha
🛤️| 🌺 🌿 🌺 |🛤️ Quarta Linha
| 🌼 🌿 🌼 |

Essa analogia ajuda a entender como destacar linhas específicas em uma tabela HTML.

Melhorias e Dicas Úteis de Design de Bordas

Gerenciando Bordas com Células Mescladas

Se a tabela contém células com atributos rowspan ou colspan, uma abordagem especial é necessária para gerenciar bordas:

td[ rowspan ] {
  border-bottom: none; /* Células mescladas sem bordas extras parecem suaves e concisas */
}

Criando uma Aparência Estilizada para Tabelas

Para uma apresentação de tabela mais polida e profissional:

  • Defina border-collapse: collapse; para que as bordas das células não se sobreponham.
  • Use outline em vez de bordas em tr para evitar aumentar o tamanho da tabela.

Cor de Fundo em vez de Bordas

Como alternativa para separar linhas ou seções com bordas, você pode usar cores de fundo para os elementos tbody ou tr:

.aumento-background {
  background-color: #f0f0f0; /* O fundo substituirá a borda quando decidir fazer uma pausa */
}

Recursos Úteis

  1. CSS :nth-child() Selector — Descrição do seletor CSS para selecionar uma linha específica em uma tabela.
  2. CSS Borders — Um guia para adicionar bordas a elementos HTML.
  3. class - HTML: HyperText Markup Language | MDN — Princípios para aumentar a especificidade do seletor usando classes em elementos HTML.
  4. :nth-of-type() - CSS: Cascading Style Sheets | MDN — Informações detalhadas sobre a pseudoclasse para indexar elementos por tipo e ordem em uma tabela.
  5. HTML table basics - Learn web development | MDN — Pontos principais para criar e formatar tabelas HTML.
  6. A Complete Guide to the Table Element | CSS-Tricks - CSS-Tricks — Métodos avançados para estilizar tabelas.
  7. Newest 'html-table+css' Questions - Stack Overflow — Discussão no Stack Overflow sobre boas práticas em estilizar tabelas HTML com CSS.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!