Saya tidak tahu mengapa CSS sederhana ini tidak berfungsi ...
.app a {
height: 18px;
width: 140px;
padding: 0;
overflow: hidden;
position: relative;
margin: 0 5px 0 5px;
text-align: center;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
color: #000;
}
<div class="app">
<a href="">Test Test Test Test Test Test</a>
</div>
Harus memotong sekitar "Tes" ke-4
FF only
- jikafilter
diterapkan, elipsis tidak akan ditampilkan. bug dibukatext-overflow
: brainlessdeveloper.com/2017/07/29/why-wont-my-text-overflowJawaban:
text-overflow:ellipsis;
hanya berfungsi jika yang berikut ini benar:px
(piksel). Lebar dalam%
(persentase) tidak akan berfungsi.overflow:hidden
danwhite-space:nowrap
mengatur.Alasan Anda mengalami masalah di sini adalah karena elemen
width
Andaa
tidak dibatasi. Anda memang memilikiwidth
pengaturan, tetapi karena elemen diatur kedisplay:inline
(yaitu default) itu mengabaikannya, dan tidak ada yang membatasi lebar juga.Anda dapat memperbaikinya dengan melakukan salah satu dari yang berikut:
display:inline-block
ataudisplay:block
(mungkin yang pertama, tetapi tergantung pada kebutuhan tata letak Anda).display:block
dan beri elemen tersebut perbaikanwidth
ataumax-width
.float:left
ataufloat:right
(mungkin yang pertama, tetapi sekali lagi, salah satu harus memiliki efek yang sama sejauh menyangkut elipsis).Saya sarankan
display:inline-block
, karena ini akan memiliki dampak jaminan minimum pada tata letak Anda; ini bekerja sangat mirip dengandisplay:inline
yang digunakan saat ini sejauh menyangkut tata letak, tetapi jangan ragu untuk bereksperimen dengan poin lain juga; Saya sudah mencoba memberikan info sebanyak mungkin untuk membantu Anda memahami bagaimana hal-hal ini berinteraksi bersama; sebagian besar pemahaman CSS adalah tentang memahami bagaimana berbagai gaya bekerja bersama.Berikut cuplikan dengan kode Anda, dengan
display:inline-block
tambahan, untuk menunjukkan seberapa dekat Anda.Referensi yang berguna:
sumber
white-space: nowrap
sebenarnya tidak perlu. Kita masih bisa melihat elips bahkan tanpa elips. Untuk beberapa baristext-overflow
, lihat SOwhite-space: nowrap
diperlukan.width
sama sekali. Yang perlu Anda lakukan adalah mengaturwhite-space: nowrap;
dan berfungsi dengan baik.Jawaban yang diterima luar biasa. Namun, Anda masih bisa menggunakan
%
lebar dan mencapaitext-overflow: ellipsis
. Solusinya sederhana:Tampaknya setiap kali Anda gunakan
calc
, nilai akhir dirender dalam piksel absolut, yang akibatnya dikonversi80%
menjadi sesuatu seperti800px
untuk1000px
wadah lebar - bandwidth. Karena itu, alih-alih menggunakanwidth: [YOUR PERCENT]%
, gunakanwidth: calc([YOUR PERCENT]%)
.sumber
Jadi jika Anda mencapai pertanyaan ini karena Anda kesulitan mencoba membuat elips berfungsi di dalam
display: flex
wadah, coba tambahkanmin-width: 0
wadah terluar yang meluap-luap induknya meskipun Anda telah menetapkannyaoverflow: hidden
dan melihat bagaimana itu bekerja untuk Anda.Lebih detail dan contoh kerja pada codepen ini oleh aj-foster . Benar-benar melakukan trik dalam kasus saya.
sumber
position: sticky
elemen dalamdisplay: flex
wadah.Pastikan
word-wrap
juga diatur ke normal untuk IE10 dan di bawah.Standar yang dirujuk di bawah ini mendefinisikan perilaku properti ini sebagai tergantung pada pengaturan properti "text-wrap". Namun, pengaturan wordWrap selalu efektif di Windows Internet Explorer karena Internet Explorer tidak mendukung properti "text-wrap".
Oleh karena itu dalam kasus saya,
word-wrap
disetel ke break-word (diwarisi atau secara default?) Menyebabkantext-overflow
bekerja di FF dan Chrome, tetapi tidak di IE.info ms pada properti word-wrap
sumber
anchor
,span
... tag adalah elemen inline secara default, Jikawidth
properti elemen inline tidak berfungsi. Jadi, Anda harus mengonversi elemen Anda menjadi elemeninline-block
ataublock level
elemensumber
Sertakan empat baris yang ditulis setelah info agar ellipsis berfungsi
sumber
Tambahkan
display: block;
ataudisplay: inline-block;
ke#User_Apps_Content .DLD_App a
demo
sumber
Anda cukup menambahkan satu baris css:
sumber
Di bootstrap 4 , Anda bisa menambahkan
.text-truncate
kelas untuk memotong teks dengan elipsis.sumber
HARUS berisi
HARUS TIDAK mengandung
HARUS berisi
sumber
Anda juga dapat menambahkan float: left; di dalam kelas ini #User_Apps_Content .DLD_App a
sumber
Saya harus membuat beberapa elips panjang deskripsi (hanya mengambil satu jalur) sementara menjadi responsif, jadi solusi saya adalah membiarkan bungkus teks (bukan
white-space: nowrap
) dan bukannya lebar tetap saya menambahkan ketinggian tetap:sumber
Ini adalah kode yang memungkinkan:
overflow: diperlukan disembunyikan
sumber
Saya menghadapi masalah yang sama dan sepertinya tidak ada solusi di atas yang berfungsi untuk Safari. Untuk browser non-safari, ini berfungsi dengan baik:
Untuk Safari, ini yang cocok untuk saya. Perhatikan bahwa kueri media untuk memeriksa apakah peramban adalah Safari mungkin berubah dari waktu ke waktu, jadi coba saja atasi kueri media jika itu tidak berfungsi untuk Anda. Dengan
line-clamp
properti, juga dimungkinkan untuk memiliki beberapa baris di web dengan elipsis, lihat di sini .sumber
https://stackoverflow.com/a/53784508/5626747
Tidak dapat berkomentar karena reputasi, jadi saya membuat jawaban lain:
Dalam hal ini Anda juga harus menghapus
display: block;
properti yang disarankan secara umum dari elemen yang Anda nyalakantext-overflow: ellipsis;
, atau akan terputus tanpa ... pada akhirnya.sumber
sumber