Apakah mungkin membatasi panjang teks menjadi garis "n" menggunakan CSS (atau memotongnya ketika meluap secara vertikal).
text-overflow: ellipsis;
hanya berfungsi untuk 1 baris teks.
teks asli:
Ultrice natoque mus mattis, aliquam, cras in pellentesque
tincidunt elit purus lectus, atau aliquet, elementum nunc
nunc rhoncus placerat urna! Silakan duduk! Ut penatibus turpis
mus tincidunt! Dapibus sed aenean, magna sagittis, lorem velit
output yang diinginkan (2 baris):
Ultriato natoque mus mattis, aliquam, cras in pellentesque
tincidunt elit purus lectus, veli aliquet, elementum ...
Jawaban:
Ada cara untuk melakukannya menggunakan sintaks baris-penjepit tidak resmi , dan mulai dengan Firefox 68 itu bekerja di semua browser utama.
Kecuali Anda peduli dengan pengguna IE, tidak perlu dilakukan
line-height
danmax-height
mundur.sumber
-webkit-box-orient: vertical;
disembunyikan ketika kompilasi scss coba ini/* autoprefixer: ignore next */ -webkit-box-orient: vertical;
Yang dapat Anda lakukan adalah sebagai berikut:
dimana
max-height:
=line-height:
×<number-of-lines>
inem
.sumber
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
untuk membuat elipsis muncul. Tetapi ini hanya akan berfungsi di Chrome. Untuk solusi yang juga berfungsi pada Firefox, lihat di sini: stackoverflow.com/a/20595073/1884158 Dan di sini ada tutorial yang membantu tentang masalah ini: css-tricks.com/line-clampinSolusi Lintas Browser yang berfungsi
Masalah ini telah mengganggu kita semua selama bertahun-tahun.
Untuk membantu dalam semua kasus, saya telah meletakkan pendekatan CSS saja, dan pendekatan jQuery dalam kasus peringatan css adalah masalah.
Inilah satu- satunya solusi CSS yang saya buat yang berfungsi dalam segala keadaan, dengan beberapa peringatan kecil.
Dasar-dasarnya sederhana, menyembunyikan limpahan bentang, dan menetapkan tinggi maks berdasarkan ketinggian garis seperti yang disarankan oleh Eugene Xa.
Lalu ada kelas pseudo setelah div berisi yang menempatkan elipsis dengan baik.
Peringatan
Solusi ini akan selalu menempatkan elipsis, terlepas dari apakah ada kebutuhan untuk itu.
Jika baris terakhir berakhir dengan kalimat akhir, Anda akan berakhir dengan empat titik ....
Anda harus puas dengan perataan teks yang dibenarkan.
Ellipsis akan berada di sebelah kanan teks, yang dapat terlihat ceroboh.
Kode + Cuplikan
jsfiddle
Pendekatan jQuery
Menurut saya ini adalah solusi terbaik, tetapi tidak semua orang bisa menggunakan JS. Pada dasarnya, jQuery akan memeriksa elemen .text apa saja, dan jika ada lebih banyak karakter daripada preset max var, itu akan memotong sisanya dan menambahkan ellipsis.
Tidak ada peringatan untuk pendekatan ini, namun contoh kode ini hanya dimaksudkan untuk menunjukkan ide dasar - saya tidak akan menggunakan ini dalam produksi tanpa meningkatkannya karena dua alasan:
1) Ini akan menulis ulang html bagian dalam .text elems. apakah dibutuhkan atau tidak. 2) Tidak ada tes untuk memeriksa bahwa html dalam tidak memiliki elem bersarang - jadi Anda banyak mengandalkan penulis untuk menggunakan .text dengan benar.
Diedit
Terima kasih atas tangkapan @markzzz
Kode & Cuplikan
jsfiddle
sumber
Sejauh yang saya bisa lihat, ini hanya mungkin menggunakan
height: (some em value); overflow: hidden
dan bahkan kemudian itu tidak akan memiliki mewah...
pada akhirnya.Jika itu bukan pilihan, saya pikir itu tidak mungkin tanpa pra-pemrosesan sisi server (sulit karena aliran teks tidak dapat diprediksi dengan andal) atau jQuery (mungkin tetapi mungkin rumit).
sumber
.mytext
- masing menggunakan jQuery, mencari tahu apakah itu memiliki lebih banyak konten daripada yang terlihat, dan menambahkan...
secara manual. Dengan begitu, Anda kompatibel dengan klien tanpa JS, dan klien dengan JS dapat memiliki dekorasi. Mungkin bernilai pertanyaan terpisah untuk dijawab oleh guru jQuery; mungkin bisa dilakukan dengan relatif mudahSolusi dari utas ini adalah dengan menggunakan dotdotdot plugin jquery . Bukan solusi CSS, tetapi memberi Anda banyak pilihan untuk tautan "baca lebih lanjut", mengubah ukuran dinamis dll.
sumber
mengikuti kelas CSS membantu saya mendapatkan ellipsis dua baris.
sumber
Saat ini Anda tidak bisa, tetapi di masa depan Anda akan dapat menggunakannya
text-overflow:ellipis-lastline
. Saat ini tersedia dengan awalan vendor di Opera 10.60+: contohsumber
Saya punya solusi yang berfungsi dengan baik tetapi elipsis ia menggunakan gradien. Ini berfungsi ketika Anda memiliki teks dinamis sehingga Anda tidak tahu apakah itu akan cukup lama untuk membutuhkan elips. Keuntungannya adalah Anda tidak perlu melakukan perhitungan JavaScript apa pun dan berfungsi untuk wadah lebar variabel termasuk sel tabel dan cross-browser. Ini menggunakan beberapa div tambahan, tetapi sangat mudah diimplementasikan.
Markup:
CSS:
posting blog: http://salzerdesign.com/blog/?p=453
halaman contoh: http://salzerdesign.com/test/fade.html
sumber
sumber
Saya sangat suka garis-penjepit, tetapi belum ada dukungan untuk firefox .. jadi saya pergi dengan kalkulasi matematika dan hanya menyembunyikan overflow
sekarang katakanlah Anda ingin menghapus dan menambahkan kelas ini melalui jQuery dengan tautan, Anda harus memiliki piksel tambahan sehingga ketinggian maksimumnya adalah 63 px, ini karena Anda perlu memeriksa setiap kali jika ketinggiannya lebih besar dari 62px, tetapi dalam kasus 4 baris Anda akan mendapatkan false true, sehingga piksel tambahan akan memperbaikinya dan tidak akan membuat masalah tambahan
saya akan menempelkan skrip kopi untuk ini hanya sebagai contoh, menggunakan beberapa tautan yang disembunyikan secara default, dengan kelas baca-lebih dan baca-kurang, itu akan menghapus yang limpahan tidak membutuhkannya dan menghapus tubuh Kelas -overflow
sumber
Jika Anda ingin fokus pada setiap hal
letter
yang dapat Anda lakukan seperti itu, saya merujuk pertanyaan iniTampilkan cuplikan kode
Jika Anda ingin fokus pada masing-masing
word
Anda dapat melakukan seperti itu + ruangTampilkan cuplikan kode
Jika Anda ingin fokus pada setiap +
word
Anda dapat melakukan seperti itu + tanpa ruangTampilkan cuplikan kode
sumber
Contoh Kode Dasar, belajar kode mudah. Periksa komentar Style CSS.
sumber
Saya sudah mencari-cari ini, tapi kemudian saya sadar, sialan situs saya menggunakan php !!! Mengapa tidak menggunakan fungsi trim pada input teks dan mainkan dengan panjang maksimal ....
Berikut ini adalah solusi yang mungkin bagi mereka yang menggunakan php: http://ideone.com/PsTaI
sumber