Edit - Asli Judul: Apakah ada cara alternatif untuk mencapai border-collapse:collapse
di CSS
(dalam rangka untuk memiliki runtuh, meja sudut bulat)?
Karena ternyata hanya membuat batas tabel runtuh tidak menyelesaikan masalah root, saya telah memperbarui judul untuk lebih mencerminkan diskusi.
Saya mencoba membuat meja dengan sudut bulat menggunakan CSS3
border-radius
properti. Gaya tabel yang saya gunakan terlihat seperti ini:
table {
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px
}
Inilah masalahnya. Saya juga ingin mengatur border-collapse:collapse
properti, dan ketika itu diatur border-radius
tidak lagi berfungsi. Apakah ada cara berbasis CSS saya bisa mendapatkan efek yang sama seperti border-collapse:collapse
tanpa benar-benar menggunakannya?
Suntingan:
Saya telah membuat halaman sederhana untuk menunjukkan masalah di sini (hanya Firefox / Safari).
Tampaknya sebagian besar masalah adalah bahwa pengaturan meja untuk memiliki sudut bulat tidak mempengaruhi sudut td
elemen sudut . Jika semua meja satu warna, ini tidak akan menjadi masalah karena saya hanya bisa membuat sudut atas dan bawah td
dibulatkan untuk baris pertama dan terakhir masing-masing. Namun, saya menggunakan warna latar belakang yang berbeda untuk meja untuk membedakan judul dan striping, sehingga td
elemen dalam akan menunjukkan sudut bulat mereka juga.
Ringkasan solusi yang diusulkan:
Mengitari meja dengan elemen lain dengan sudut bundar tidak berfungsi karena sudut persegi tabel "berdarah."
Menentukan lebar perbatasan ke 0 tidak menciutkan tabel.
td
Sudut bawah masih persegi setelah pengaturan ruang sel ke nol.
Sebaliknya, menggunakan JavaScript berfungsi dengan menghindari masalah.
Solusi yang memungkinkan:
Tabel dihasilkan dalam PHP, jadi saya hanya bisa menerapkan kelas yang berbeda untuk masing-masing th / tds luar dan gaya setiap sudut secara terpisah. Saya lebih suka tidak melakukan ini, karena itu tidak terlalu elegan dan sedikit sakit untuk diterapkan ke beberapa tabel, jadi tolong terus saran datang.
Kemungkinan solusi 2 adalah menggunakan JavaScript (jQuery, khususnya) untuk menata sudut-sudutnya. Solusi ini juga berfungsi, tetapi masih belum cukup yang saya cari (saya tahu saya pilih-pilih). Saya punya dua pemesanan:
- ini adalah situs yang sangat ringan, dan saya ingin menjaga JavaScript seminimal mungkin
- bagian dari daya tarik yang menggunakan radius perbatasan bagi saya adalah degradasi yang anggun dan peningkatan progresif. Dengan menggunakan batas-jari-jari untuk semua sudut bundar, saya berharap memiliki situs yang dibulatkan secara konsisten di browser yang mendukung CSS3 dan situs yang secara konsisten berbentuk persegi di tempat lain (Saya sedang melihat Anda, IE).
Saya tahu bahwa mencoba melakukan ini dengan CSS3 hari ini mungkin tampak tidak perlu, tetapi saya punya alasan. Saya juga ingin menunjukkan bahwa masalah ini adalah hasil dari spesifikasi w3c, bukan dukungan CSS3 yang buruk, sehingga solusi apa pun akan tetap relevan dan berguna ketika CSS3 memiliki dukungan yang lebih luas.