Tabella Bootstrap senza strisce / bordi


191

Sono un po 'bloccato con un problema CSS durante l'utilizzo di Bootstrap. Sto anche usando Angular JS con Angular UI.bootstrap (che potrebbe essere parte del problema).

Sto realizzando un sito Web che visualizza i dati in una tabella. A volte, i dati contengono oggetti che devo visualizzare nelle tabelle. Quindi voglio mettere le tabelle senza bordi all'interno di una tabella normale mantenendo al contempo le linee di separazione per le tabelle senza bordi.

Ma sembra che anche se dico specificamente di non mostrare i bordi su un tavolo, è costretto:

HTML:

<table class='table borderless'>

CSS:

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

Quindi qui, quello che voglio sono solo i bordi interni.


1
Quale versione di Bootstrap stai usando?
Martin Bean,

2
Sto usando bootstrap 2.3.1
Romain il

con bootstrap 4: .borderless tr td, .borderless tr th {border: none;}
Yevhenii Shashkov

Risposte:


286

Lo stile del bordo è impostato sugli tdelementi.

html:

<table class='table borderless'>

css:

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

Aggiornamento: da Bootstrap 4.1 è possibile utilizzare .table-borderlessper rimuovere il bordo.

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


11
Nota: dovresti anche aggiungere .borderless th, poiché si applica anche lo stile Bootstrap <th>.
Benjamin,

11
Se stai usando Bootstrap 3, controlla la mia risposta .
Davide Pastore,

42
Ho dovuto aggiungere il bordo: nessuno! Importante; per farlo funzionare.
Srikanth Jeeva,

@SrikanthJeeva ..o basta aggiungere lo stile css nella riga style=o inserirlo in un file personalizzato e assicurarsi che sia caricato dopo il file css Bootstrap , per sovrascrivere lo stile predefinito Bootstrap. I CSS sono caricati con ordine; il secondo sovrascrive il primo, più specifici sovrascrivono quelli più generali.
WesternGun

1
Per boostrap> 4.1 utilizzare <table class='table table-borderless'>per Max in basso
tomba

339

Usando Bootstrap 3.2.0 ho avuto problemi con la soluzione di Brett Henderson (i bordi erano sempre presenti), quindi l'ho migliorato:

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
Non dimenticare l' thelemento-nel corpo: .borderless tbody tr th(come usato negli esempi )
Wietse

2
@DavidePastore Se questo è solo per le tabelle, magari prefisso .table-, come Bootstrap 3 fa per altre classi correlate alla tabella (ad esempio table-striped, ecc.). Quindi il nome sarà table-borderless.
arogachev,

1
Funziona con v4.0.0-alpha.2. Grazie!
Dominofoe,

Stavo ancora ottenendo un bordo lungo il fondo del tavolo fino a quando non ho aggiunto .table-borderless,all'inizio di questa specifica di stile.
Christopher King,

Non vedo table-borderlessin questo documento getbootstrap.com/docs/3.3/css/#tables . Da dove viene?
Arup Rakshit,

24

simile al resto, ma più specifico:

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

Non dovresti aver bisogno di importanti con .table.borderless
Non amato

@Sam Jones - Questo influenza tutto il tavolo? Voglio che alcune righe abbiano il bordo inferiore. Voglio che il confine sia finito.
MarcoZen,

! important è molto importante
FLICKER,

18

Non aggiungere la .tableclasse al tuo <table>tag. Dai documenti Bootstrap sulle tabelle :

Per uno stile base - imbottitura leggera e solo divisori orizzontali - aggiungi la classe base .tablea qualsiasi <table>. Può sembrare super ridondante, ma dato l'uso diffuso di tabelle per altri plugin come calendari e selettori di date, abbiamo deciso di isolare i nostri stili di tabella personalizzati.


Anche così: html: <table class = 'borderless'> css: .borderless {border: none; } Non funziona.
Romain,

2
Suggerirei di utilizzare Web Inspector in Chrome e vedere dove vengono applicati i bordi, poiché le tabelle per impostazione predefinita non hanno bordi quando si utilizza Bootstrap per l'interoperabilità con altri componenti come i selettori di date, ecc.
Martin Bean

6
Questo ha funzionato alla grande, sto solo usando la "tabella condensata" e altre varianti senza la classe "tabella" e mi sono sbarazzato dei confini. Ottimo consiglio dato che i documenti mi hanno gettato un po 'lì.
chrismacp,


5

Nel mio CSS:

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

Nella mia direttiva:

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

Non ho inserito il 'borderless' per l'elemento td.

Testato e ha funzionato! Tutti i bordi e le imbottiture sono completamente rimossi.


4

Ho ampliato gli stili di tabella Bootstrap come ha fatto Davide Pastore, ma con quel metodo gli stili vengono applicati anche a tutte le tabelle figlio e non si applicano al piè di pagina.

Una soluzione migliore sarebbe imitare i principali stili di tabella Bootstrap, ma con la tua nuova 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;
}

Quindi, quando si utilizza <table class='table table-borderless'>solo la tabella specifica con la classe verrà delimitata, non alcuna tabella nella struttura.


3

Prova questo:

<table class='borderless'>

CSS

.borderless {
 border:none;
}

Nota: quello che stavi facendo prima non funzionava perché il tuo codice css aveva come target una tabella all'interno della tua tabella .borderless (che probabilmente non esisteva)


3

So che questa è una vecchia discussione e che hai scelto una risposta, ma ho pensato di pubblicarla perché è pertinente per chiunque stia attualmente cercando.

Non vi è alcun motivo per creare nuove regole CSS, è sufficiente annullare le regole correnti e i bordi scompaiono.

    .table> tbody> tr> th,
    .table> tbody> tr> td {
        bordo superiore: 0;
    }

andando avanti, qualsiasi cosa con stile

    .tavolo

non mostrerà confini.


2

Usa la border-classe da Boostrap 4

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

o

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

Assicurati di terminare l'input di classe con l'ultima modifica che vuoi fare.



1

Sono in ritardo al gioco qui ma FWIW: l'aggiunta .table-bordereda un .tableavvolge il tavolo con un bordo, anche se aggiungendo un bordo completo a ogni cella.

Ma la rimozione .table-borderedlascia ancora le linee guida. È un problema semantico, ma in linea con la nomenclatura BS3 + ho usato questo set di sostituzioni:

.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

Usa hiddeninvece di none:

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

1

La maggior parte degli esempi sembra essere troppo specifica e / o gonfia.

Ecco la mia soluzione ridotta usando Bootstrap 4.0.0 (4.1 include .table-borderlessma ancora alpha) ...

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

Simile a molte soluzioni proposte, ma byte minimi 😉

Nota: sono finito qui perché stavo visualizzando riferimenti BS4.1 e non riuscivo a capire perché .table-borderlessnon funzionassi con le mie fonti 4.0 (ad esempio: errore dell'operatore, duh) 💩


Correzione: 4.1 non è alfa. Supponevo che non usassi quella versione 🤣
Mavelo,

1

In alcuni casi, è necessario utilizzare anche la spaziatura dei bordi nella classe della tabella, come:

spaziatura dei bordi: 0! importante;


0

Installa bootstrap con npm o cdn link

<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>

ottenere il riferimento con questo link

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.