Come rimuovere completamente i bordi dalla tabella HTML


141

Il mio obiettivo è creare una pagina HTML simile a una "cornice per foto". In altre parole, voglio creare una pagina vuota circondata da 4 immagini.

Questo è il mio codice:

<table>
    <tr>
        <td class="bTop" colspan="3">
        </td>
    </tr>
    <tr>
        <td class="bLeft">
        </td>
        <td class="middle">
        </td>
        <td class="bRight">
        </td>
    </tr>
    <tr>
        <td class="bBottom" colspan="3">
        </td>
    </tr>                                                    
</table>

E le classi CSS sono le seguenti:

.bTop
{
    width: 960px;
    height: 111px;
    background-image: url('../Images/BackTop.jpg');
}
.bLeft
{
    width: 212px;
    height: 280px;
    background-image: url('../Images/BackLeft.jpg');    

}

.middle
{
    width: 536px;
    height: 280px;
}

.bRight
{
    width: 212px;
    height: 280px;
    background-image: url('../Images/BackRight.jpg');    
}

.bBottom
{        
    width: 960px;
    height: 111px;
    background-image: url('../Images/BackBottom.jpg');       
}

Il mio problema è che sto ottenendo sottili linee bianche tra le celle del tavolo, intendo che il bordo delle immagini non è continuo. Come posso evitare questi spazi bianchi?

Risposte:


179
<table cellspacing="0" cellpadding="0">

E in css:

table {border: none;}

MODIFICARE: Come notato da iGEL, questa soluzione è ufficialmente deprecata (funziona ancora comunque), quindi se stai iniziando da zero, dovresti andare con la soluzione di collasso dei bordi di jnpcl.

Finora non mi piace molto questo cambiamento (non lavorare con le tabelle così spesso). Rende alcune attività un po 'più complicate. Ad esempio, quando si desidera includere due bordi diversi nello stesso posto (visivamente), mentre uno è TOP per una riga e il secondo è BOTTOM per l'altra riga. Crolleranno (= ne verrà mostrato solo uno). Quindi devi studiare come viene calcolata la "priorità" del bordo e quali stili di bordo sono "più forti" (doppio rispetto a solido, ecc.).

Mi è piaciuto questo:

<table cellspacing="0" cellpadding="0">
  <tr>
    <td class="first">first row</td>
  </tr>
  <tr>
    <td class="second">second row</td>
  </tr>
</table>

----------

.first {border-bottom:1px solid #EEE;}
.second {border-top:1px solid #CCC;}

Ora, con il collasso dei bordi, questo non funzionerà in quanto viene sempre rimosso un bordo. Devo farlo in qualche altro modo (ci sono più soluzioni ofc). Una possibilità è usare CSS3 con box-shadow:

<table class="tab">
  <tr>
    <td class="first">first row</td>
  </tr>
  <tr>
    <td class="second">second row</td>
  </tr>
</table>​​​

<style>
.tab {border-collapse:collapse;}
.tab .first {border-bottom:1px solid #EEE;}
.tab .second {border-top:1px solid #CCC;box-shadow: inset 0 1px 0 #CCC;}​
</style>

Puoi anche usare qualcosa come lo stile del bordo "groove | ridge | inset | outset" con un solo bordo. Ma per me questo non è ottimale, perché non riesco a controllare entrambi i colori.

Forse esiste una soluzione semplice e piacevole per far crollare i confini, ma non l'ho ancora visto e onestamente non ci ho passato molto tempo. Forse qualcuno qui sarà in grado di mostrarmi / noi;)


7
cellpacing e cellpadding sono obsoleti dal 1999, vedi developer.mozilla.org/en-US/docs/HTML/Element/table - Dovresti andare con la soluzione @jnpcl.
iGEL,

iGEL ha ragione, ho modificato la mia risposta. Onestamente, sono rimasto sorpreso dal fatto che sia deprecato da così tanto tempo e lo stavo ancora usando senza problemi :)
Damb


19

Per me avevo bisogno di fare qualcosa del genere per rimuovere completamente i bordi dalla tabella e da tutte le celle. Ciò non richiede affatto la modifica dell'HTML, il che è stato utile nel mio caso.

table, tr, td {
    border: none;
}

3
Ho provato ogni suggerimento fino a qui, e infine border: noneapplicato a tdconvinto idiota per creare un tavolo senza confini:<td markdown="span" style="padding: 0.5vw; border: none; max-width:100%; max-height:10%; background: transparent;">
Avio

16

In un ambiente bootstrap nessuna delle risposte migliori ha aiutato, ma applicando i seguenti rimossi tutti i bordi:

.noBorder {
    border:none !important;
}

Applicato come:

<td class="noBorder">

1
Questo suggerimento ha funzionato per me in Wordpress. Avevo difficoltà a far imporre il confine a nessuno.
Robbpriestley,

7

In un ambiente bootstrap ecco la mia soluzione:

    <table style="border-collapse: collapse; border: none;">
        <tr style="border: none;">
            <td style="border: none;">
            </td>
        </tr>
    </table>    

4

Questo è ciò che ha risolto il problema per me:

Nel tag tr HTML, aggiungi questo:

style="border-collapse: collapse; border: none;"

Ciò ha rimosso tutti i bordi che erano visualizzati nella riga della tabella.

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.