Saya sudah mulai menggunakan md-table untuk proyek saya, dan saya ingin lebar kolom tetap. Saat ini semua lebar kolom dibagi menjadi ukuran yang sama.
Di mana saya bisa mendapatkan dokumentasi dimensi tabel data?
Saya sudah mulai menggunakan md-table untuk proyek saya, dan saya ingin lebar kolom tetap. Saat ini semua lebar kolom dibagi menjadi ukuran yang sama.
Di mana saya bisa mendapatkan dokumentasi dimensi tabel data?
Saat Material membuat tabel, secara otomatis menerapkan dua nama kelas untuk Anda yang bisa Anda gunakan untuk mengatur gaya setiap kolom. Pada contoh di bawah ini, gaya diberi nama mat-column-userId
dan cdk-column-userId
.
<ng-container cdkColumnDef="userId">
<md-header-cell *cdkHeaderCellDef> ID </md-header-cell>
<md-cell *cdkCellDef="let row"> {{row.id}} </md-cell>
</ng-container>
Sekarang Anda dapat menggunakan nama-nama itu di css:
.mat-column-userId {
flex: 0 0 100px;
}
Mirip dengan jawaban Rahul Patil , tetapi Anda tidak perlu menambahkan kelas lain ke definisi kolom Anda.
.mat-header-cell
akan diutamakan. Alternatifnya, Anda bisa menambahkan aturan gaya lain untuk sel header.Saat ini, ini belum diekspos di level API. Bagaimanapun Anda dapat mencapainya dengan menggunakan sesuatu yang serupa dengan ini
Di css, Anda perlu menambahkan kelas kustom ini -
Silakan masukkan logika untuk menambahkan kelas atau lebar khusus di sini. Ini akan menerapkan lebar khusus untuk kolom.
Karena md-table menggunakan
flex
, kita perlu memberikan lebar tetap dengan cara yang fleksibel. Ini hanya menjelaskan -0 = jangan tumbuh (singkatan dari flex-grow)
0 = jangan menyusut (singkatan dari flex-shrink)
75px = mulai dari 75px (singkatan dari flex-basis)
Plunkr di sini - https://plnkr.co/edit/v7ww6DhJ6zCaPyQhPRE8?p=preview
sumber
Jika Anda menggunakan angular / flex-layout dalam proyek Anda, Anda dapat mengatur kolom dengan menambahkan direktif fxFlex ke mat-header-cell dan mat-cell:
Jika tidak, Anda dapat menambahkan CSS khusus untuk mendapatkan hasil yang sama:
sumber
Periksa ini: https://github.com/angular/material2/issues/5808
Karena material2 menggunakan tata letak fleksibel, Anda cukup menyetel
fxFlex="40"
(atau nilai yang Anda inginkan untuk fxFlex) kemd-cell
danmd-header-cell
.sumber
fxFlex="40px"
itu juga mungkinSaya menemukan kombinasi jawaban jymdman dan Rahul Patil paling cocok untuk saya:
Selain itu, jika Anda memiliki satu kolom "utama" yang ingin selalu menempati sejumlah ruang di perangkat yang berbeda, saya menemukan hal berikut ini cukup berguna untuk mengadopsi lebar penampung yang tersedia dengan cara yang lebih responsif (ini memaksa kolom yang tersisa untuk gunakan ruang yang tersisa secara merata):
sumber
The sudut materi dokumentasi penggunaan
untuk komponen tabelnya untuk mengubah lebar kolom. Sekali lagi, userId akan menjadi nama sel.
sumber
Saya menggunakan FlexLayout untuk memperbarui lebar kolom sesuai media kueri yang diberikan FlexLayout kepada kita.
berarti kolom ini akan menggunakan 30% dari lebar baris secara default, jika gt-xs @mediaQuery terpenuhi, lebar baru akan menjadi 15% dan perilaku serupa untuk kondisi lain
sumber
Saya baru saja menggunakan:
Ganti 4 dengan posisi header yang perlu diatur lebarnya, Contoh dokumentasi yang digunakan:
Jadi saya hanya memodifikasinya untuk mendapatkan apa yang saya inginkan.
sumber
Anda dapat menyetel kelas .mat-cell menjadi flex: 0 0 200px; bukannya flex: 1 bersama dengan nth-child.
sumber
Sekarang Anda dapat melakukannya seperti ini
sumber
Anda dapat menggunakan
fxFlex
dari "@ angular / flex-layout" dalamth
dantd
seperti ini:sumber
.mat-column-skills { max-width: 40px; }
sumber
Anda juga dapat menggunakan pemilih elemen:
mat-header-cell:nth-child(1), mat-cell:nth-child(1) { flex: 0 0 64px; }
Tetapi jawaban jymdman adalah cara yang paling direkomendasikan dalam banyak kasus.
sumber
Contoh kolom Mat-table dan CSS yang sesuai:
HTML / Template
CSS
sumber
Anda juga dapat menambahkan gaya langsung di markup jika Anda menginginkannya:
sumber
Jika Anda memiliki terlalu banyak kolom tabel dan tidak disesuaikan dalam tabel sudut menggunakan
md-table
, maka tempel gaya berikut dicomponent.css
file. Ini akan bekerja seperti pesona dengan tampilan gulir secara horizontal.Tambahkan gaya ini untuk mengubah kolom Anda secara terpisah.
Atau periksa tautan ini , (dari mana kode di atas berasal) , untuk detail lebih lanjut.
sumber
Mari kita ambil contoh. Jika tabel Anda memiliki kolom sebagai berikut:
Karena ini berisi dua kolom. kemudian kita bisa mengatur lebar kolom menggunakan
untuk contoh ini, kami ambil
sumber
Saya mendapatkan solusi yang sangat mudah untuk ini - mengatur lebar berbeda untuk kolom dalam style sheet dengan menimpa sel dan sel header:
Contoh - menyetel lebar khusus untuk kolom ke-1 dan ke-5:
.mat-cell:nth-child(1), .mat-header-cell:nth-child(1) { flex: 0 0 5%; } .mat-cell:nth-child(5), .mat-header-cell:nth-child(5) { flex: 0 0 10%; }
github
sumber