Tabela de inicialização sem faixa / bordas


190

Estou meio preso com um problema de CSS ao usar o Bootstrap. Também estou usando o Angular JS com Angular UI.bootstrap (que pode fazer parte do problema).

Estou criando um site que exibe dados em uma tabela. Em algum momento, os dados contêm o objeto que eu tenho que exibir nas tabelas. Então, eu quero colocar tabelas sem borda dentro de uma tabela normal, mantendo linhas de separação dentro das tabelas sem borda.

Mas parece que, mesmo que eu diga especificamente para não mostrar as bordas de uma mesa, ele é forçado:

HTML:

<table class='table borderless'>

CSS:

.borderless table {
    border-top-style: none;
    border-left-style: none;
    border-right-style: none;
    border-bottom-style: none;
}

Então aqui, o que eu quero é apenas as fronteiras internas.


1
Qual versão do Bootstrap você está usando?
Martin Bean

2
Estou usando o bootstrap 2.3.1
Romain

com bootstrap 4: .borderless td, .borderless th {borda: nenhuma;}
Yevhenii Shashkov 08/08/18

Respostas:


284

O estilo da borda é definido nos tdelementos.

html:

<table class='table borderless'>

css:

.borderless td, .borderless th {
    border: none;
}

Atualização: Desde o Bootstrap 4.1, você pode usar .table-borderlesspara remover a borda.

https://getbootstrap.com/docs/4.1/content/tables/#borderless-table


11
Nota: você também deve adicionar .borderless th, pois o estilo do Bootstrap também se aplica <th>.
Benjamin

11
Se você estiver usando o Bootstrap 3, verifique minha resposta .
Davide Pastore

42
Eu tive que adicionar borda: nenhuma! Importante; para fazer funcionar.
Srikanth Jeeva

@SrikanthJeeva ..ou você acabou de adicionar o estilo css na linha style=ou colocá-lo em um arquivo personalizado e garantir que ele seja carregado depois do arquivo css do Bootstrap , para substituir o estilo padrão do Bootstrap. CSS são carregados com ordem; o último substitui o primeiro, o mais específico substitui o mais geral.
WesternGun 6/0318

1
Para boostrap> 4.1, use <table class='table table-borderless'>por Max abaixo
tomb

339

Usando o Bootstrap 3.2.0, tive um problema com a solução Brett Henderson (as bordas sempre estavam lá), então eu a melhorei:

HTML

<table class="table table-borderless">

CSS

.table-borderless > tbody > tr > td,
.table-borderless > tbody > tr > th,
.table-borderless > tfoot > tr > td,
.table-borderless > tfoot > tr > th,
.table-borderless > thead > tr > td,
.table-borderless > thead > tr > th {
    border: none;
}

2
Não se esqueça do thelemento no corpo: .borderless tbody tr th(conforme usado nos exemplos )
Wietse

2
@DavidePastore Se for apenas para as tabelas, talvez prefixe-o .table-, como o Bootstrap 3 faz para outras classes relacionadas à tabela (por exemplo table-striped, etc.). Então o nome será table-borderless.
Arogachev 28/01

1
Funciona para v4.0.0-alpha.2. Obrigado!
Dominofoe

Eu ainda estava recebendo uma borda na parte inferior da tabela até adicionar .table-borderless,ao início desta especificação de estilo.
Christopher King

Não vejo table-borderlessneste documento getbootstrap.com/docs/3.3/css/#tables . De onde veio?
Arup Rakshit

24

semelhante ao resto, mas mais específico:

    table.borderless td,table.borderless th{
     border: none !important;
}

Você não deve ser importante com .table.borderless
Não é amado

@ Sam Jones - Isso afeta toda a tabela? Eu quero que algumas linhas tenham borda inferior. Quero que o limite seja superior.
MarcoZen 9/01/19

! important é muito importante #
0000

18

Não adicione a .tableclasse à sua <table>tag. Nos documentos do Bootstrap nas tabelas :

Para um estilo básico - preenchimento leve e apenas divisores horizontais - adicione a classe base .tablea qualquer um <table>. Pode parecer super redundante, mas, devido ao amplo uso de tabelas para outros plugins, como calendários e seletores de datas, optamos por isolar nossos estilos de tabela personalizados.


Mesmo assim: html: <table class = 'borderless'> css: .borderless {border: none; } Não funciona.
Romain

2
Eu sugiro usar o Web Inspector no Chrome, em seguida, e vendo onde quaisquer fronteiras estão sendo aplicadas, como tabelas por padrão não tem fronteiras quando se utiliza Bootstrap para interoperabilidade com outros componentes como data-catadores etc.
Martin Feijão

6
Isso funcionou muito bem, eu apenas estou usando o 'table-condensed' e outras variantes sem a classe 'table' e me livrei das bordas. Ótima dica, pois os documentos me jogaram um pouco lá.
Chrismacp


5

No meu CSS:

.borderless tr td {
    border: none !important;
    padding: 0px !important;
}

Na minha diretiva:

<table class='table borderless'>
    <tr class='borderless' ....>

Eu não coloquei o 'sem borda' para o elemento td.

Testado e funcionou! Todas as bordas e forros são completamente arrancados.


4

Expandi os estilos de tabela do Bootstrap como Davide Pastore, mas com esse método os estilos também são aplicados a todas as tabelas filho e não se aplicam ao rodapé.

Uma solução melhor seria imitar os principais estilos de tabela do Bootstrap, mas com sua nova classe:

.table-borderless>thead>tr>th
.table-borderless>thead>tr>td
.table-borderless>tbody>tr>th
.table-borderless>tbody>tr>td
.table-borderless>tfoot>tr>th
.table-borderless>tfoot>tr>td {
    border: none;
}

Então, quando você usar <table class='table table-borderless'>apenas a tabela específica com a classe, será delimitada, e não qualquer tabela na árvore.


3

Tente o seguinte:

<table class='borderless'>

CSS

.borderless {
 border:none;
}

Nota: O que você estava fazendo antes não estava funcionando porque seu código css estava direcionado a uma tabela dentro da tabela .borderless (que provavelmente não existia)


3

Sei que este é um tópico antigo e que você escolheu uma resposta, mas pensei em publicá-lo, pois é relevante para qualquer pessoa que esteja procurando no momento.

Não há razão para criar novas regras CSS, basta desfazer as regras atuais e as bordas desaparecerão.

    .table> tbody> tr> th,
    .table> tbody> tr> td {
        borda superior: 0;
    }

daqui para frente, qualquer coisa com estilo

    .tabela

não mostrará fronteiras.


2

Use a border-classe do Boostrap 4

<td class="border-0"></td>

ou

<table class='table border-0'></table>

Certifique-se de finalizar a entrada da classe com a última alteração que deseja fazer.



1

Estou atrasado para o jogo aqui, mas FWIW: adicionar .table-bordereda .tableapenas envolve a tabela com uma borda, embora adicionando uma borda completa a cada célula.

Mas remover .table-borderedainda deixa as linhas de regra. É uma questão semântica, mas, de acordo com a nomenclatura BS3 +, usei esse conjunto de substituições:

.table.table-unruled>tbody>tr>td,
.table.table-unruled>tbody>tr>th {
  border-top: 0 none transparent;
  border-bottom: 0 none transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<div class="container">
  <div class="row">
    <div class="col-xs-5">
      .table
      <table class="table">
        <thead>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
        </tbody>
        <tfoot>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </tfoot>
      </table>
    </div>
    <div class="col-xs-5 col-xs-offset-1">
      <table class="table table-bordered">
        .table .table-bordered
        <thead>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
        </tbody>
        <tfoot>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </tfoot>
      </table>
    </div>
  </div>

  <div class="row">
    <div class="col-xs-5">
      <table class="table table-unruled">
        .table .table-unruled
        <thead>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
        </tbody>
        <tfoot>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </tfoot>
      </table>
    </div>
    <div class="col-xs-5 col-xs-offset-1">
      <table class="table table-bordered table-unruled">
        .table .table-bordered .table-unruled
        <thead>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
        </tbody>
        <tfoot>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </tfoot>
      </table>
    </div>
  </div>

</div>


1

Use em hiddenvez de none:

.hide-bottom {
    border-bottom-style: hidden;
}

1

A maioria dos exemplos parece ser muito específica e / ou inchada.

Aqui estava minha solução aparada usando o Bootstrap 4.0.0 (4.1 inclui .table-borderlessmas ainda alfa) ...

.table-borderless th{border:0;}
.table-borderless td{border:0;}

Semelhante a muitas soluções propostas, mas com bytes mínimos 😉

Nota: Acabei aqui porque estava visualizando as referências do BS4.1 e não conseguia descobrir por que .table-borderlessnão estava trabalhando com minhas fontes 4.0 (por exemplo: erro do operador, duh) 💩


Correção: 4.1 não é alfa. Assumiu que era porque eu não estava usando essa versão 🤣
Mavelo

1

Em alguns casos, também é necessário usar espaçamento entre bordas na classe da tabela, como:

espaçamento entre bordas: 0! importante;


0

Instale o bootstrap com o link npm ou cdn

<table class="table table-borderless">
<thead>
<tr>
  <th scope="col">#</th>
  <th scope="col">First</th>
  <th scope="col">Last</th>
  <th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
  <th scope="row">1</th>
  <td>Mark</td>
  <td>Otto</td>
  <td>@mdo</td>
</tr>
<tr>
  <th scope="row">2</th>
  <td>Jacob</td>
  <td>Thornton</td>
  <td>@fat</td>
  </tr>
  <tr>
  <th scope="row">3</th>
    <td colspan="2">Larry the Bird</td>
    <td>@twitter</td>
   </tr>
 </tbody>
</table>

obtenha a referência com este link

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.