text-overflow:ellipsis;
hanya berfungsi jika yang berikut ini benar:
- Lebar elemen harus dibatasi dalam
px
(piksel). Lebar dalam %
(persentase) tidak akan berfungsi.
- Elemen harus memiliki
overflow:hidden
dan white-space:nowrap
mengatur.
Alasan Anda mengalami masalah di sini adalah karena elemen width
Anda a
tidak dibatasi. Anda memang memiliki width
pengaturan, tetapi karena elemen diatur ke display:inline
(yaitu default) itu mengabaikannya, dan tidak ada yang membatasi lebar juga.
Anda dapat memperbaikinya dengan melakukan salah satu dari yang berikut:
- Atur elemen ke
display:inline-block
atau display:block
(mungkin yang pertama, tetapi tergantung pada kebutuhan tata letak Anda).
- Atur salah satu elemen penampungnya
display:block
dan beri elemen tersebut perbaikan width
atau max-width
.
- Atur elemen ke
float:left
atau float: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 dengan display: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.
.app a {
height: 18px;
width: 140px;
padding: 0;
overflow: hidden;
position: relative;
display: inline-block;
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>
Referensi yang berguna: