text-overflow: ellips tidak berfungsi


264

Inilah yang saya coba (lihat di sini ):

body {
    overflow: hidden;
}

span {
    border: solid 2px blue;
    white-space: nowrap;
    text-overflow: ellipsis;
}

Pada dasarnya, saya ingin rentang menyusut dengan elipsis ketika jendela dibuat kecil. Apa kesalahan yang telah aku perbuat?


6
persyaratan untuk ellipsis berfungsi: stackoverflow.com/a/33061059/3597276
Michael Benjamin

Masalah yang saya miliki ketika saya pikir itu tidak berfungsi adalah saya tidak mengatur lebar cukup lama (10px). Jadi saya memotong ellipsis, doh!
Rod

Jawaban:


459

Anda harus memiliki CSS overflow, width(atau max-width) display,, dan white-space.

http://jsfiddle.net/HerrSerker/kaJ3L/1/

span {
    border: solid 2px blue;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 100px;
    display: block;
    overflow: hidden
}

Tambahan Jika Anda ingin gambaran umum teknik melakukan penjepitan garis (Multiline Overflow Ellipses), lihat halaman Trik CSS ini: https://css-tricks.com/line-clampin/

Tambahan2 (Mei 2019)
Seperti yang diklaim oleh tautan ini , Firefox 68 akan mendukung -webkit-line-clamp(!)


12
Properti ruang putih adalah apa yang saya lewatkan. Terima kasih.
nebulousGirl

65
Ini menyebalkan bahwa Anda membutuhkan white-space: nowrap;properti. Sekarang Anda hanya dapat membuat satu baris akhir teks dengan ... alih-alih teks blok.
Sven van Zoelen

3
Hari ini, semua browser utama mendukung elipsis: caniuse.com/#feat=text-overflow
Kazy

1
@basZero Multiline Ellipsis tidak didukung dengan CSS saja. Anda harus mengambil tindakan lain
yunzen

1
Anda perlu menentukan lebar sehingga wadah terikat, Anda perlu mengatur overflow: disembunyikan sehingga browser akan menyembunyikan teks run-over, dan kemudian mengatur teks-overflow: ellipsis untuk menginstruksikan browser bagaimana khususnya menangani menyembunyikan teks overflow.
Michael Angstadt

46

Pastikan Anda memiliki elemen blok, ukuran maksimum, dan atur overflow ke tersembunyi. (Diuji dalam IE9 dan FF 7)

http://jsfiddle.net/uh9zD/

div {
    border: solid 2px blue;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 50px;
}

5
Sepertinya ruang putih itu: properti nowrap umumnya juga diperlukan, untuk apa pun dengan spasi.
Kzqai

Duplikat dari komentar di atas.
nebulousGirl

@nebulousGirl: sebenarnya komentar Kzqai lebih awal dari yang diposting di komentar HerrSerker.
lepe

Ada kekhasan di IE - IE tidak membungkus kata kedua (diuji di IE 11) ... Go figure. Bekerja di peramban lain seperti yang diharapkan (termasuk Opera 12 lama yang bagus).
Nux

1
@Nux Ini juga tidak berfungsi seperti yang diharapkan di browser MS Edge
yunzen

21

Untuk multi-baris dalam penggunaan Chrome:

display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2; // max nb lines to show
-webkit-box-orient: vertical;

Terinspirasi dari youtube ;-)


Ini solusi yang sangat menarik. Ini menggunakan -webkit-*properti, tetapi didukung di semua browser utama. Info lebih lanjut dapat ditemukan di sini: css-tricks.com/almanac/properties/l/line-clamp
dkniffin

5

Saya mengalami masalah dengan elipsis di bawah chrome. Menghidupkan ruang putih: nowrap sepertinya memperbaikinya.

max-width: 95px;
max-height: 20px;
overflow: hidden;
display: inline-block;
text-overflow: ellipsis;
border: solid 1px black;
font-size: 12pt;
text-align: right;
white-space: nowrap;

4
word-wrap: break-word;

ini dan hanya ini yang melakukan pekerjaan untuk saya untuk

<pre> </pre> 

menandai

tidak ada yang gagal melakukan elipsis ....


3

Hanya kepala bagi siapa saja yang mungkin menemukan ini ... H2 saya mewarisi

text-rendering: optimizelegibility; 
//Changed to text-rendering: none; for fix

yang tidak memungkinkan ellipsis. Rupanya ini sangat rawan ya?


2

Tambahkan kode di bawah ini untuk tempat yang Anda sukai

contoh

p{
   display: block; /* Fallback for non-webkit */
   display: -webkit-box;
   max-width: 400px;
   margin: 0 auto;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
   text-overflow: ellipsis;
 }

2

Untuk beberapa baris

Di chrome, Anda dapat menerapkan css ini jika Anda perlu menerapkan elipsis pada beberapa baris.

Anda juga dapat menambahkan lebar di css Anda untuk menentukan elemen dengan lebar tertentu:

.multi-line-ellipsis {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}
<p class="multi-line-ellipsis">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>


1

Anda dapat mencoba menggunakan ellipsis dengan menambahkan berikut ini di CSS:

.truncate {
  width: 250px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Tapi sepertinya kode ini hanya berlaku untuk trim satu baris. Lebih banyak cara untuk memotong teks dan menampilkan elipsis dapat ditemukan di situs web ini: http://blog.sanuker.com/?p=631


0

Tambahkan baris berikut di CSS agar ellipsis berfungsi

 p {
     display: block; // change it as per your requirement
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
   }

0

Bagi kita yang tidak ingin menggunakan lebar tetap , itu juga berfungsi menggunakandisplay: inline-grid . Jadi bersama dengan properti yang diperlukan Anda tambahkan sajadisplay

span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: inline-grid;
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.