Aggiungi bordo inferiore alla riga della tabella <tr>


386

Ho una tabella di 3 per 3. Ho bisogno di un modo per aggiungere un bordo per il fondo di ogni riga tre dargli un colore specifico.

Per prima cosa ho provato il modo diretto, cioè:

<tr style="border-bottom:1pt solid black;">

Ma non ha funzionato. Quindi ho aggiunto CSS in questo modo:

tr {
border-bottom: 1pt solid black;
}

Non funzionava ancora.

Preferirei usare i CSS perché non ho bisogno di aggiungere un styleattributo ad ogni riga. Non ho aggiunto un borderattributo a <table>. Spero che ciò non influisca sul mio CSS.


Come nota a margine, se lo stile in linea (primo esempio nella tua domanda) non funziona, è improbabile che lo stile incorporato (secondo esempio) funzioni. Dovresti anche ricercare la disponibilità di attributi per l'elemento che stai tentando di definire
Tass

Se vuoi avere un bordo inferiore per il tavolo, puoi seguire questo jsfiddle.net/7awN4
AllenC

6
Solo una nota per incoraggiare i futuri ricercatori a scorrere verso il basso fino alla risposta di @Nathan Manousos, di seguito - è probabilmente la soluzione che stai cercando
henry

Risposte:


400

Ho avuto un problema come questo prima. Non credo che trpossa prendere direttamente uno stile di bordo. La mia soluzione è stata quella di modellare le tds nella riga:

<tr class="border_bottom">

CSS:

tr.border_bottom td {
  border-bottom:1pt solid black;
}

27
Nota che usando questa soluzione molto probabilmente avrai uno spazio nel confine tra le due. La risposta di simoncereska si occupa di questo, ma tieni presente che potrebbe non sembrare bello con i tipi di bordi tratteggiati o tratteggiati (perché non sono continui)
Griddo

24
Puoi anche rimediare aggiungendo cellspacing="0"come attributo a <table>(vedi questa domanda ). Tuttavia, non so come apparirà con bordi tratteggiati o tratteggiati.
Stefan van den Akker,

5
trpuò prendere lo stile del bordo nel modello di bordo collassato. @Sangram, considera di accettare una risposta che ne tenga conto al posto di questa, no?
Robert Siemer,

Questo non funzionerà se c'è un'imbottitura tra le celle della tabella. Se è presente un'imbottitura, il bordo sarà visibilmente diviso in pezzi.
Timothy Gonzalez,

e il tuo tavolo ha bisogno di questo stile <table style = "border-collapse: collapse">
Oguz

511

Aggiungi border-collapse:collapsealla regola della tabella:

table { 
    border-collapse: collapse; 
}

collegamento


2
Questo non funziona da solo. Non puoi ancora modellare la riga, ma puoi modellare le celle.
Renan,

49
Ti sbagli, @Renan. Il modello del bordo collassato è esattamente ciò che rende i bordi delle righe stylable. Secondo CSS sectoin 17.6 : Nel modello di bordo separato "Righe, [...] non può avere bordi (ovvero, gli interpreti devono ignorare le proprietà del bordo per quegli elementi)." "Nel modello di bordo collassato, è possibile specificare i bordi che circondano tutta o parte di una cella, gruppo di righe [e] di riga [...]" E comunque: funziona nel mio browser (Chromium 37).
Robert Siemer,

12
Penso che alcune persone potrebbero essere confuse (come ho fatto io) e non stanno notando che lo stile del collasso del confine deve essere impostato sul tavolo, non sulla riga.
Porlune,

Sembra che Chrome non abbia questa funzione, sebbene supporti altre funzionalità di compressione dei bordi.
Liqun dom

72

Utilizzare border-collapse:collapsesul tavolo e border-bottom: 1pt solid black;sul tr


6
l'impostazione del bordo sulla tr è inutile anche con il bordo crollato. devi impostarlo sul disco del tr
Radu Simionescu il

9
@RaduSimionescu Sbagliato, funziona perfettamente trcon il bordo crollato.
Styphon,

Nessun effetto in FF 45.0.1.
imrek,

41

Uso

border-collapse:collapse come ha scritto Nathan e devi impostare

td { border-bottom: 1px solid #000; }


Questo è il modo in cui lo farei anch'io! Aggiungi il bordo su td e usa border-collapse sul tavolo
Sayan,

30

Ci sono molte risposte incomplete qui. Poiché non è possibile applicare un bordo al trtag, è necessario applicarlo ai tag tdo in questo thmodo:

td {
  border-bottom: 1pt solid black;
}

In questo modo lascerà un piccolo spazio tra ciascuno td, il che probabilmente non è desiderabile se vuoi che il bordo appaia come se fosse il trtag. Per "riempire gli spazi" per così dire, è necessario utilizzare la border-collapseproprietà tablesull'elemento e impostarne il valore su collapse, in questo modo:

table {
  border-collapse: collapse;
}

8

Uso

table{border-collapse:collapse}
tr{border-top:thin solid}

Sostituisci "solido solido" con proprietà CSS.


7

Visualizza la riga come un blocco.

tr {
    display: block;
    border-bottom: 1px solid #000;
}

e per visualizzare colori alternativi semplicemente:

tr.oddrow {
    display: block;
    border-bottom: 1px solid #F00;
}

11
Non è una buona idea impostaredisplay: blockpertr. Usainvece l'tr td { border-bottom: ... }annunciotr.oddrow td { border-bottom: ... }
vladr

4
il blocco di visualizzazione potrebbe distruggere il layout della tabella.border-collapse: il collasso sul tavolo stesso è sicuramente la soluzione migliore
N4ppeL

7

Puoi usare la box-shadowproprietà per simulare un bordo di un trelemento. Regola la posizione Y di box-shadow(sotto rappresentato come 2px) per regolare lo spessore.

tr {
  -webkit-box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
  -moz-box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
  box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
}

6

Ho provato ad aggiungere

    table {
      border-collapse: collapse;
    }   

accanto al

    tr {
      bottom-border: 2pt solid #color;
    }

e poi ha commentato il collasso dei confini per vedere cosa ha funzionato. Sto solo facendo funzionare il selettore tr con proprietà sul bordo inferiore!

Nessun bordo CSS ex.

Nessun bordo CSS ex.

Nessuna foto di confine dal vivo

Nessuna foto di confine dal vivo

CSS Border ex.

CSS Border ex.

Tavolo con bordo foto dal vivo

Tavolo con bordo foto dal vivo


2

Ho scoperto quando si utilizza questo metodo che lo spazio tra gli elementi td ha causato una lacuna nel bordo, ma non temere ...

Un modo per aggirare questo:

<tr>
    <td>
        Example of normal table data
    </td>

    <td class="end" colspan="/* total number of columns in entire table*/">
        /* insert nothing in here */ 
    </td>
</tr>

Con il CSS:

td.end{
    border:2px solid black;
}

2

<td style="border-bottom-style: solid; border-bottom: thick dotted #ff0000; ">

Puoi fare lo stesso anche per l'intera riga.

C'è border-bottom-style, border-top-style, border-left-style, border-right-style. O semplicemente border-styleche si applicano a tutti e quattro i bordi contemporaneamente.

Puoi vedere (e provare te stesso online) maggiori dettagli qui


2

Diverse risposte interessanti. Dato che vuoi solo un bordo inferiore (o superiore) qui ce ne sono altri due. Supponendo di volere un bordo blu spesso 3px. Nella sezione stile puoi aggiungere

.blueB {background-color:blue; height:3px} or
hr {background-color:blue; color:blue height:3px}

Nel codice tabella neanche

<tr><td colspan='3' class='blueB></td></tr> or
<tr><td colspan='3'><hr></td></tr>

1

Un'altra soluzione è la border-spacingproprietà:

table td {
  border-bottom: 2px solid black;
}

table {
  border-spacing: 0px;
}
<table>
 <tr>
   <td>ABC</td>
   <td>XYZ</td>
</table>


1

Nessun bordo inferiore CSS:

<table>
    <thead>
        <tr>
            <th>Title</th>
        </tr>
        <tr>
            <th>
                <hr>
            </th>
        </tr>
    </thead>
</table>

0

Non puoi mettere un bordo su un elemento tr. Questo ha funzionato per me in Firefox e Internet Explorer 11:

<td style='border-bottom:1pt solid black'>

non puoi mettere un bordo su un tr. Risposta modificata per chiarire questo.
Decko,

Questa è la risposta più semplice e accurata.
JamesC

-3

HTML

<tr class="bottom-border">
</tr>

CSS

tr.bottom-border {
  border-bottom: 1px solid #222;
}

2
inutile senza collasso delle frontiere: collasso;
m1crdy,
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.