Dalam tabel HTML, cellpadding
dan cellspacing
dapat diatur seperti ini:
<table cellspacing="1" cellpadding="1">
Bagaimana hal yang sama dapat dilakukan dengan menggunakan CSS?
html
css
html-table
alignment
kokos
sumber
sumber
width:auto
makaborder-collapse
mungkin tidak berfungsi seperti yang diharapkan.Jawaban:
Dasar-dasar
Untuk mengendalikan "cellpadding" di CSS, Anda cukup menggunakan
padding
sel tabel. Misalnya untuk 10px "cellpadding":Untuk "ruang seluler", Anda bisa menerapkan
border-spacing
properti CSS ke tabel Anda. Misalnya untuk 10px "ruang seluler":Properti ini bahkan akan memungkinkan jarak horizontal dan vertikal yang terpisah, sesuatu yang tidak dapat Anda lakukan dengan "ruang sel" sekolah lama.
Masalah di IE <= 7
Ini akan berfungsi di hampir semua browser populer kecuali Internet Explorer melalui Internet Explorer 7, di mana Anda hampir tidak beruntung. Saya mengatakan "hampir" karena browser ini masih mendukung
border-collapse
properti, yang menggabungkan batas sel tabel yang berdampingan. Jika Anda mencoba untuk menghilangkan spasi sel (yaitu,cellspacing="0"
) makaborder-collapse:collapse
seharusnya memiliki efek yang sama: tidak ada ruang di antara sel-sel tabel. Dukungan ini buggy, karena tidak mengesampingkan yang sudah adacellspacing
atribut HTML yang pada elemen tabel.Singkatnya: untuk browser non-Internet Explorer 5-7,
border-spacing
menangani Anda. Untuk Internet Explorer, jika situasinya tepat (Anda ingin 0 ruang seluler dan tabel Anda belum menentukannya), Anda dapat menggunakannyaborder-collapse:collapse
.Catatan: Untuk ikhtisar besar properti CSS yang dapat diterapkan ke tabel dan untuk browser mana, lihat halaman Quirksmode yang fantastis ini .
sumber
Default
Perilaku default browser setara dengan:
Cellpadding
Mengatur jumlah ruang antara isi sel dan dinding sel
Cellspacing
Mengontrol ruang antar sel tabel
Kedua
Keduanya (khusus)
Cobalah sendiri!
Di sini Anda dapat menemukan cara HTML lama untuk mencapai ini.
sumber
sumber
cellspacing=0
setara. Setara untuk samacellspacing=1
sekali berbeda. Lihat jawaban yang diterima.table td
dantable th
hanya menjaditd
danth
masing - masing? Ini bekerja dengan baik, tetapi pemilih yang lebih kecil berarti pencocokan sedikit lebih cepattable > tr > td
dantable > tr > th
. Ini hampir secepattr
danth
, dan dijamin berfungsi jika Anda memiliki tabel bersarang. Just my 2ctable
pemilih diperlukan? IIRC, a<td>
tidak valid kecuali di dalam a<tr>
.Mengatur margin pada sel tabel tidak benar-benar memiliki efek sejauh yang saya tahu. Setara CSS sebenarnya
cellspacing
adalahborder-spacing
- tetapi tidak bekerja di Internet Explorer.Anda bisa menggunakan
border-collapse: collapse
untuk mengatur spasi sel dengan andal ke 0 seperti yang disebutkan, tetapi untuk nilai lain saya pikir satu-satunya cara lintas browser adalah tetap menggunakancellspacing
atribut.sumber
border-collapse
hanya berfungsi di IE 5-7 jika tabel belum memilikicellspacing
atribut yang ditentukan. Saya telah menulis jawaban komprehensif yang menggabungkan semua bagian yang benar dari jawaban lain di halaman ini jika itu membantu.Retasan ini berfungsi untuk Internet Explorer 6 dan yang lebih baru, Google Chrome , Firefox, dan Opera :
The
*
deklarasi untuk Internet Explorer 6 dan 7, dan browser lainnya benar akan mengabaikannya.expression('separate', cellSpacing = '10px')
kembali'separate'
, tetapi kedua pernyataan dijalankan, seperti dalam JavaScript Anda dapat memberikan lebih banyak argumen dari yang diharapkan dan semuanya akan dievaluasi.sumber
Bagi mereka yang menginginkan nilai ruang sel non-nol, CSS berikut ini berfungsi untuk saya, tetapi saya hanya dapat mengujinya di Firefox.
Lihat tautan Quirksmode yang diposting di tempat lain untuk detail kompatibilitas. Tampaknya ini mungkin tidak bekerja dengan versi Internet Explorer yang lebih lama.
sumber
Solusi sederhana untuk masalah ini adalah:
sumber
Juga, jika Anda ingin
cellspacing="0"
, jangan lupa untuk menambahkanborder-collapse: collapse
di Andatable
's stylesheet.sumber
Bungkus isi sel dengan div dan Anda dapat melakukan apa pun yang Anda inginkan, tetapi Anda harus membungkus setiap sel dalam kolom untuk mendapatkan efek yang seragam. Misalnya, untuk mendapatkan margin kiri & kanan yang lebih lebar:
Jadi CSS akan menjadi,
Ya, itu merepotkan. Ya, ia bekerja dengan Internet Explorer. Bahkan, saya hanya mengujinya dengan Internet Explorer, karena hanya itu yang diizinkan untuk digunakan di tempat kerja.
sumber
Cukup gunakan
border-collapse: collapse
untuk meja Anda, danpadding
untukth
atautd
.sumber
Gaya ini untuk reset penuh untuk tabel - cellpadding , cellspacing , dan border .
Saya memiliki gaya ini di file reset.css saya:
sumber
TBH. Untuk semua penggemar dengan CSS Anda mungkin juga hanya menggunakan
cellpadding="0"
cellspacing="0"
karena mereka tidak usang ...Orang lain yang menyarankan margin pada
<td>
jelas belum mencoba ini.sumber
sumber
Cukup gunakan aturan padding CSS dengan data tabel:
Dan untuk spasi perbatasan:
Namun, ini dapat membuat masalah di browser versi lama seperti Internet Explorer karena implementasi model kotak yang berbeda.
sumber
Dari apa yang saya pahami dari klasifikasi W3C adalah bahwa
<table>
s dimaksudkan untuk menampilkan data 'hanya'.Berdasarkan itu saya merasa jauh lebih mudah untuk membuat
<div>
dengan latar belakang dan semua itu dan memiliki tabel dengan data melayang menggunakanposition: absolute;
danbackground: transparent;
...Ia bekerja di Chrome, Internet Explorer (6 dan yang lebih baru) dan Mozilla Firefox (2 dan yang lebih baru).
Margin yang digunakan (atau dimaksudkan anyways) untuk membuat spacer antara unsur-unsur wadah, seperti
<table>
,<div>
dan<form>
, tidak<tr>
,<td>
,<span>
atau<input>
. Menggunakannya untuk apa pun selain elemen wadah akan membuat Anda sibuk menyesuaikan situs web Anda untuk pembaruan peramban di masa mendatang.sumber
CSS:
sumber
Anda dapat dengan mudah mengatur padding di dalam sel tabel menggunakan properti padding CSS. Ini adalah cara yang valid untuk menghasilkan efek yang sama dengan atribut cellpadding tabel.
Demikian pula, Anda bisa menggunakan properti spasi perbatasan CSS untuk menerapkan spasi antara batas sel tabel yang berdekatan seperti atribut cellspacing. Namun, untuk bekerja jarak-perbatasan nilai muse properti border-collapse terpisah, yang merupakan default.
sumber
Coba ini:
Atau coba ini:
sumber
Saya gunakan
!important
setelah perbatasan-runtuh sukadan itu bekerja untuk saya di IE7. Tampaknya menimpa atribut cellspacing.
sumber
!important
hanya akan diperlukan untuk mengesampingkan pengaturan CSS lain dalam situasi yang kompleks (dan bahkan sebagian besar pendekatan yang salah).!important
, yang bisa dimasukkan sebagai komentar, bukan jawaban lain.cell-padding
dapat diberikan olehpadding
dalam CSS sementaracell-spacing
dapat diatur dengan mengaturborder-spacing
untuk tabel.Biola .
sumber
Jika
margin
tidak bekerja, coba setdisplay
daritr
untukblock
dan kemudian marjin akan bekerja.sumber
Untuk tabel, spasi dan cellpadding sudah usang dalam HTML 5.
Sekarang untuk ruang seluler Anda harus menggunakan spasi-perbatasan. Dan untuk cellpadding Anda harus menggunakan border-collapse.
Dan pastikan Anda tidak menggunakan ini dalam kode HTML5 Anda. Selalu mencoba menggunakan nilai-nilai ini dalam file CSS 3.
sumber
sumber
Dalam tabel HTML,
cellpadding
dancellspacing
dapat diatur seperti ini:Untuk sel-padding :
Panggil saja
td/th
sel sederhanapadding
.Contoh:
Tampilkan cuplikan kode
Untuk spasi sel
Sebut saja sederhana
table
border-spacing
Contoh:
Tampilkan cuplikan kode
Lebih banyak gaya tabel dengan tautan sumber CSS di sini Anda mendapatkan lebih banyak gaya tabel dengan CSS .
sumber
Anda dapat melakukan hal seperti ini di CSS, menggunakan
border-spacing
danpadding
:sumber
Bagaimana kalau menambahkan gaya langsung ke tabel itu sendiri? Ini alih-alih digunakan
table
dalam CSS Anda, yang merupakan pendekatan BAD jika Anda memiliki beberapa tabel di halaman Anda:sumber
td { padding: ... }
atautable { border-spacing: ... }
, alih-alih menerapkannya langsung ke tabel. Mereka tidak menambahkan apa pun. Seperti yang saya katakan, ketika Anda memiliki beberapa tabel di halaman Anda & tidak ingin memengaruhi mereka, Anda tidak ingin ini! Kami tidak memerlukan seluruh halaman jawaban yang mengatakan "Gunakan lembar gaya!", Padahal mungkin itulah hal terakhir yang Anda inginkan, karena Anda hanya ingin memformat satu sel atau tabel. Saat itulah menerapkannya ketable
atautd
tidak diinginkan & membuat kelas baru karena itu berlebihan.table#someId
).Saya menyarankan ini dan semua sel untuk tabel tertentu dipengaruhi.
sumber
Anda dapat memeriksa kode di bawah ini hanya dengan membuat
index.html
dan menjalankannya.OUTPUT:
sumber