text-overflow:ellipsis;
yalnızca aşağıdakiler geçerli olduğunda çalışır:
- Öğenin genişliği
px
(piksel) olarak sınırlanmalıdır . Genişlik %
(yüzde) çalışmaz.
- Elemanın olması
overflow:hidden
ve white-space:nowrap
ayarlanması gerekir .
Burada sorun yaşamanızın nedeni, width
öğenizin a
kısıtlanmamasıdır. Bir width
ayarınız var, ancak öğe display:inline
(varsayılan olarak) olarak ayarlandığından, onu yok sayıyor ve başka hiçbir şey genişliğini kısıtlamıyor.
Aşağıdakilerden birini yaparak bunu düzeltebilirsiniz:
- Öğeyi
display:inline-block
veya olarak ayarlayın display:block
(muhtemelen birincisi, ancak düzen gereksinimlerinize bağlıdır).
- Kap öğelerinden birini ayarlayın
display:block
ve bu öğeye sabit width
veya max-width
.
- Elemanı
float:left
veya olarak ayarlayın float:right
(muhtemelen birincisi, ancak yine, her ikisi de üç nokta söz konusu olduğunda aynı etkiye sahip olmalıdır).
Öneririm display:inline-block
, çünkü bunun düzeniniz üzerinde minimum teminat etkisi olacaktır; display:inline
şu anda yerleşim söz konusu olduğunda kullandığı gibi çalışır , ancak diğer noktalarla da deney yapmaktan çekinmeyin; Bu şeylerin birlikte nasıl etkileştiğini anlamanıza yardımcı olmak için mümkün olduğunca fazla bilgi vermeye çalıştım; CSS'yi anlamanın büyük bir kısmı, çeşitli stillerin birlikte nasıl çalıştığını anlamakla ilgilidir.
İşte display:inline-block
size ne kadar yakın olduğunuzu göstermek için kodunuzla birlikte eklenen bir pasaj .
.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>
Yararlı referanslar: