Saya butuh solusi sederhana. Saya tahu ini mirip dengan beberapa pertanyaan lain, seperti:
- Tabel HTML dengan header tetap dan kolom tetap?
- Bagaimana saya bisa mengunci baris pertama dan kolom pertama tabel saat menggulir, mungkin menggunakan JavaScript dan CSS?
Tetapi saya hanya perlu satu kolom kiri untuk dibekukan dan saya lebih suka solusi yang sederhana dan tanpa skrip.
html
css
html-table
agsamek
sumber
sumber
Jawaban:
Jika Anda menginginkan tabel tempat hanya kolom yang bergulir secara horizontal, Anda bisa
position: absolute
kolom pertama (dan tentukan lebarnya secara eksplisit), lalu bungkus seluruh tabel dalam satuoverflow-x: scroll
blok. Jangan repot-repot mencoba ini di IE7, namun ...HTML & CSS yang relevan:
Biola
sumber
text-overflow: ellipsis
untuk menampilkannya dengan rapi.Ini adalah plugin jQuery yang menarik yang membuat header dan / atau kolom tetap . Alihkan kolom tetap menjadi true pada halaman demo untuk melihatnya beraksi.
sumber
Anda dapat menggunakan
sticky
posisi. Berikut ini contoh kode. Ini adalah solusi HTML / CSS. Tidak diperlukan js.Kode bootply: https://www.bootply.com/g8pfBXOcY9
sumber
Dalam hal kolom kiri lebar tetap, solusi terbaik disediakan oleh Eamon Nerbonne .
Dalam hal kolom kiri lebar variabel, solusi terbaik yang saya temukan adalah membuat dua tabel identik dan mendorong satu di atas yang lain. Demo: http://jsfiddle.net/xG5QH/6/ .
sumber
seperate
bawah bootstap, selain itu perbatasan tidak mengapung dengan sel. Dibutuhkan sedikit pembersihan perbatasan setelah itu.visibility: collapse;
ke kolom untuk disembunyikan dari tabel tetap (harus menyukai:not()
pemilih css! ). saya juga menggunakan jQuery ke.clone()
tabel, setelah dihasilkan oleh php + MySQL + ajax, dan masukkan ke dalam div ...FWIW, di sini adalah tabel yang dapat digulir dengan kepala dan sisi tetap.
http://codepen.io/ajkochanowicz/pen/KHdih
sumber
Sedikit terlambat tetapi saya menemukan thread ini ketika mencoba solusi untuk diri saya sendiri. Dengan asumsi Anda menggunakan browser modern saat ini, saya datang dengan solusi menggunakan CSS calc () untuk membantu menjamin lebar terpenuhi.
Semoga ini bisa membantu seseorang!
sumber
<br/>
di<th>
elemen?Gaya kolom kiri dengan
position: fixed
. (Anda mungkin ingin menggunakantop
danleft
mengatur gaya untuk mengontrol di mana tepatnya itu terjadi.)sumber
position: fixed
dan tetap diletakkan, sisa konten bertindak normal (mungkin dengan margin kiri ditetapkan sehingga tidak tumpang tindih kolom kiri).Untuk sebagian besar browser yang dirilis setelah 2017:
Anda dapat menggunakan
position: sticky
. Lihat https://caniuse.com/#feat=css-sticky .Tidak perlu untuk kolom lebar tetap.
Jalankan cuplikan kode di bawah ini untuk melihat cara kerjanya.
sumber
sticky
, jadi tidak perlu untuk satu lagiposition: sticky
perubahan dalam perilakunya, karenanya menggunakannya sudah ditunjukkan.Saya mengambil jawaban Earmon Nerbonne dan mengeditnya agar berfungsi dengan tabel yang memenuhi seluruh lebar.
http://jsfiddle.net/DYgD6/6/
Lebar kolom tetap masih harus menjadi nilai yang ditetapkan.
sumber
Jika Anda mengembangkan sesuatu yang lebih rumit dan ingin beberapa kolom diperbaiki / ditempelkan ke kiri, Anda mungkin perlu sesuatu seperti ini.
sumber
Jika Anda berada di neraka Webdevelopper dan perlu membuat ini berfungsi untuk IE6, berikut ini contoh kode yang saya gunakan:
Ini mungkin bekerja HANYA untuk IE6, jadi gunakan komentar bersyarat untuk CSS.
sumber
Tidak perlu menambahkan plugin apa pun, CSS dapat melakukan pekerjaan ini !!!
Idenya adalah untuk membuat posisi semua sel pertama di setiap kolom absolut, dan membuat lebar tetap. Ex:
Ini menyembunyikan beberapa bagian dari beberapa kolom di bawah kolom pertama, jadi tambahkan kolom kosong kedua (tambahkan td kosong kedua) dengan lebar sama dengan kolom pertama.
Saya menguji dan ini bekerja di Chrome dan Firefox.
sumber
Eamon Nerbonne, saya mengubah beberapa css dalam kode Anda dan sekarang lebih baik (bilah gulir dimulai dari baris pertama)
http://jsfiddle.net/At8L8/
Saya hanya menambahkan dua baris:
sumber
Anda bisa membuat kolom pertama
position: sticky; z-index: 9
. Ini akan membuat kolom / baris tetap pada posisi saat ini. Lihat contoh saya codepen di sini https://codepen.io/swastikmishra/pen/zYYdKBQContoh HTML
sumber
Opera buggy untuk semua jawaban sebelumnya ketika saya mengujinya di mac saya. Jika Anda menggulir tabel, kolom tetap menghilang setelah Anda melewati kolom tidak tetap pertama. Saya teruskan dan menulis kode di bawah ini. Ini bekerja di semua browser yang saya instal secara lokal. Saya tidak tahu bagaimana menanganinya.
Perlu diingat bahwa jika Anda bermaksud untuk melewatkan baris dalam satu tabel dan bukan yang lain atau mengubah ketinggian baris Anda mungkin perlu menyesuaikan kode ini.
sumber
Berikut ini adalah modifikasi lain dari jawaban paling populer, tetapi dengan penanganan panjang variabel teks pada label kolom pertama: http://jsfiddle.net/ozx56n41/
Pada dasarnya, saya menggunakan kolom kedua untuk membuat tinggi baris, seperti yang disebutkan. Tapi biola saya sebenarnya berfungsi tidak seperti kebanyakan yang disebutkan di atas.
HTML:
CSS:
sumber
Bagi saya ini adalah satu-satunya yang bekerja dengan sempurna (terima kasih kepada Paul O'Brien!): Https://codepen.io/paulobrien/pen/gWoVzN
Berikut cuplikannya:
sumber
Atau, tata gaya tas dengan ukuran yang telah ditentukan (via
height:20em
, misalnya) dan gunakanoverflow-y:scroll;
Kemudian, Anda dapat memiliki tubuh besar, yang akan menggulir secara independen dari sisa halaman.
sumber
sumber
Ini dapat dengan mudah dilakukan dengan bantuan datatables. Orang-orang yang baru mengenal tabel data, silakan merujuk ke https://datatables.net/. Adalah plugin dan menawarkan banyak fitur. Dalam kode yang diberikan, tajuk diperbaiki, 3 kolom pertama diperbaiki dan beberapa fitur lainnya diperbaiki juga disana.
sumber
Saya tidak memeriksa setiap jawaban untuk pertanyaan ini, tetapi setelah menganalisis sebagian besar dari mereka, saya menemukan bahwa desain gagal jika ada data multiline dalam sel atau kepala. Saya menggunakan Javascript untuk menyelesaikan ini. Saya harap seseorang menemukan ini bermanfaat.
https://codepen.io/kushagrarora/pen/zeYaoY
Catatan: div "container" hanya untuk menunjukkan bahwa kode tersebut kompatibel dengan tampilan seluler.
sumber
Saya baru saja membuat kolom paling kanan dari tabel lengket.
Saya percaya jika Anda akan melakukannya
{position: sticky; left: 0;}
, Anda akan mendapatkan hasil yang diinginkan.sumber
sticky
tidak didukung oleh IE.Jika Anda tidak ingin terlalu banyak menyentuh meja saat ini, Anda dapat membuat kolom sematan yang terpancang di depan meja.
Contoh ini menunjukkan satu cara melakukannya tanpa JS
sumber
Di HTML5, Anda dapat menggunakan CSS
style.transform
.Namun, saya sarankan Anda "geser di antara halaman" mematikan Jika Anda menerapkan pada Mac.
lihat contoh codePen
sumber
Tambahkan ini di kepala:
Javascript:
sumber