Tambahkan border-bottom ke baris tabel <tr>

386

Saya memiliki tabel 3 oleh 3. Saya perlu cara untuk menambahkan perbatasan untuk bagian bawah setiap baris trdan memberikan warna tertentu.

Pertama saya mencoba cara langsung, yaitu:

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

Tapi itu tidak berhasil. Jadi saya menambahkan CSS seperti ini:

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

Itu masih tidak berhasil.

Saya lebih suka menggunakan CSS karena saya tidak perlu menambahkan styleatribut ke setiap baris. Saya belum menambahkan borderatribut ke <table>. Saya harap itu tidak mempengaruhi CSS saya.

Sangram Nandkhile
sumber
Sebagai catatan, jika penataan inline (contoh pertama dalam pertanyaan Anda) tidak berfungsi maka penataan yang disematkan (contoh kedua) tidak akan berfungsi. Anda juga harus meneliti ketersediaan atribut untuk elemen yang Anda coba gaya: w3.org/TR/html-markup/tr.html
Tass
Jika Anda ingin memiliki batas bawah untuk tr tabel Anda dapat mengikuti ini jsfiddle.net/7awN4
AllenC
6
Hanya sebuah catatan untuk mendorong para pencari di masa depan untuk menggulir ke bawah ke jawaban @Nathan Manousos, di bawah ini - itu mungkin solusi yang Anda cari
henry

Jawaban:

400

Saya punya masalah seperti ini sebelumnya. Saya tidak berpikir trbisa mengambil gaya perbatasan secara langsung. Solusi saya adalah menata huruf tds di baris:

<tr class="border_bottom">

CSS:

tr.border_bottom td {
  border-bottom:1pt solid black;
}
tsherif
sumber
27
Perhatikan bahwa menggunakan solusi ini Anda kemungkinan besar akan memiliki celah di perbatasan antara td's. Jawaban simoncereska menangani hal ini tetapi perlu diketahui bahwa ini mungkin tidak terlihat bagus dengan tipe garis putus-putus atau putus-putus (karena tidak kontinu)
Griddo
24
Anda juga dapat memperbaiki ini dengan menambahkan cellspacing="0"sebagai atribut <table>(lihat pertanyaan ini ). Tidak tahu bagaimana ini akan terlihat dengan perbatasan bertitik atau putus-putus.
Stefan van den Akker
5
trdapat menggunakan gaya tepi dalam model batas yang runtuh. @Sangram, pertimbangkan untuk menerima jawaban yang mempertimbangkan itu alih-alih yang ini, bukan?
Robert Siemer
Ini tidak akan berfungsi jika ada padding di antara sel-sel tabel. Jika ada padding maka perbatasan akan terlihat terbelah.
Timothy Gonzalez
dan meja Anda memerlukan gaya ini <table style = "border-collapse: collapse">
Oguz
511

Tambahkan border-collapse:collapseke aturan tabel Anda:

table { 
    border-collapse: collapse; 
}

Tautan

Nathan Manousos
sumber
2
Ini tidak bekerja dengan sendirinya. Anda masih tidak bisa mendesain baris, tetapi Anda bisa mendesain sel.
Renan
49
Anda salah, @Renan. Model border collapsing adalah apa yang membuat perbatasan baris bisa diubah. Menurut CSS sectoin 17.6 : Dalam model perbatasan yang terpisah "Baris, [...] tidak dapat memiliki batas (yaitu, agen pengguna harus mengabaikan properti perbatasan untuk elemen-elemen itu)." “Dalam model batas kolaps, dimungkinkan untuk menentukan batas yang mengelilingi semua atau sebagian sel, baris [dan] grup baris [...]” Dan omong-omong: ini berfungsi di browser saya (Chromium 37).
Robert Siemer
12
Saya pikir beberapa orang mungkin menjadi bingung (seperti yang saya lakukan) dan tidak memperhatikan bahwa gaya border-collapse perlu diatur di atas meja, bukan di baris.
Porlune
Tampaknya Chrome tidak memiliki fitur ini, meskipun mendukung fitur border-collapse lainnya.
Liqun Sun
72

Gunakan di border-collapse:collapseatas meja dan border-bottom: 1pt solid black;di atas tr

Jpduro
sumber
6
pengaturan perbatasan di tr tidak berguna bahkan dengan perbatasan diciutkan. Anda harus mengaturnya di tr
Radu Simionescu
9
@RaduSimionescu Salah, berfungsi dengan baik pada trbatas yang runtuh.
Styphon
Tidak ada efek pada FF 45.0.1.
imrek
41

Menggunakan

border-collapse:collapse sebagai Nathan menulis dan Anda perlu mengatur

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

simoncereska
sumber
Itulah cara saya akan melakukannya juga! Tambahkan perbatasan di td dan gunakan border-collapse di atas meja
Sayan
30

Ada banyak jawaban yang tidak lengkap di sini. Karena Anda tidak dapat menerapkan batas pada trtag, Anda perlu menerapkannya pada tag tdatau thseperti:

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

Melakukan hal ini akan menyisakan ruang kecil di antara masing-masing td, yang kemungkinan tidak diinginkan jika Anda ingin perbatasan muncul seolah-olah itu adalah trtag. Untuk "mengisi celah", Anda perlu memanfaatkan border-collapseproperti pada tableelemen dan menetapkan nilainya collapse, seperti:

table {
  border-collapse: collapse;
}
dmeyer
sumber
8

Menggunakan

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

Ganti "thin solid" dengan properti CSS.

Jesse
sumber
7

Tampilkan baris sebagai blok.

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

dan untuk menampilkan warna alternatif hanya:

tr.oddrow {
    display: block;
    border-bottom: 1px solid #F00;
}
Jeremey
sumber
11
Tidak baik ide untuk setdisplay: blockuntuktr's. Gunakantr td { border-bottom: ... }iklantr.oddrow td { border-bottom: ... }sebagai gantinya
vladr
4
tampilan blok mungkin menghancurkan tata letak tabel. perbatasan-runtuh: runtuh di atas meja itu sendiri jelas merupakan solusi terbaik
N4ppeL
7

Anda bisa menggunakan box-shadowproperti untuk memalsukan batas trelemen. Sesuaikan posisi Y box-shadow(di bawah direpresentasikan sebagai 2px) untuk menyesuaikan ketebalan.

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);
}
Ian Bruce
sumber
6

Saya mencoba menambahkan

    table {
      border-collapse: collapse;
    }   

di samping

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

dan kemudian berkomentar keluar-runtuh perbatasan untuk melihat apa yang berhasil. Hanya memiliki pemilih tr dengan properti perbatasan bawah bekerja untuk saya!

Tidak ada Border CSS ex.

Tidak ada Border CSS ex.

Tidak ada Foto Perbatasan

Tidak ada Foto Perbatasan

CSS Border ex.

CSS Border ex.

Tabel dengan foto perbatasan langsung

Tabel dengan foto perbatasan langsung

MUFN
sumber
2

Saya menemukan ketika menggunakan metode ini bahwa ruang antara elemen td menyebabkan celah terbentuk di perbatasan, tetapi tidak takut ...

Salah satu cara mengatasi ini:

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

Dengan CSS:

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

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

Anda dapat melakukan hal yang sama ke seluruh baris juga.

Ada border-bottom-style, border-top-style, border-left-style, border-right-style. Atau hanya border-styleitu berlaku untuk keempat perbatasan sekaligus.

Anda dapat melihat (dan COBA DIRI secara online) lebih detail di sini

David Silva-Barrera
sumber
2

Beberapa jawaban menarik. Karena Anda hanya menginginkan batas bawah (atau atas) di sini ada dua lagi. Dengan asumsi Anda ingin perbatasan biru tebal 3px. Di bagian gaya Anda dapat menambahkan

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

Dalam kode tabel juga

<tr><td colspan='3' class='blueB></td></tr> or
<tr><td colspan='3'><hr></td></tr>
Howard Cary Morris
sumber
1

Solusi lain untuk ini adalah border-spacingproperti:

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

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

Eugen Konkov
sumber
1

Tidak ada batas bawah CSS:

<table>
    <thead>
        <tr>
            <th>Title</th>
        </tr>
        <tr>
            <th>
                <hr>
            </th>
        </tr>
    </thead>
</table>
Gil Perez
sumber
0

Anda tidak dapat menempatkan perbatasan pada elemen tr. Ini bekerja untuk saya di firefox dan IE 11:

<td style='border-bottom:1pt solid black'>
tongkat
sumber
Anda tidak dapat menempatkan perbatasan di tr. Jawaban yang diedit untuk memperjelas ini.
Decko
Itu jawaban paling sederhana dan paling akurat.
JamesC
-3

HTML

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

CSS

tr.bottom-border {
  border-bottom: 1px solid #222;
}
vikas
sumber
2
tidak berguna tanpa perbatasan-runtuh: runtuh;
m1crdy