text-overflow:ellipsis;
funktioniert nur, wenn Folgendes zutrifft:
- Die Breite des Elements muss in
px
(Pixel) beschränkt sein. Die Breite in %
(Prozent) funktioniert nicht.
- Das Element muss
overflow:hidden
und white-space:nowrap
haben.
Das Problem hier ist, dass die Breite deines a
-Elements nicht beschränkt ist. Du hast zwar eine Breiteneinstellung, aber da das Element auf display:inline
(also auf Standard) gesetzt ist, ignoriert es das und seine Breite wird nicht eingeschränkt.
Du kannst das Problem lösen, indem du eine der folgenden Optionen wählst:
- Setze das Element auf
display:inline-block
oder display:block
(wahrscheinlich ersteres, aber je nach Layoutanforderungen).
- Setze eines seiner Container-Elemente auf
display:block
und gib diesem Element eine feste width
oder max-width
.
- Setze das Element auf
float:left
oder float:right
(wahrscheinlich ersteres, aber auch hier sollte beides denselben Effekt in Bezug auf die Ellipse haben).
Ich würde empfehlen, display:inline-block
zu verwenden, da dies den minimalen Kollateraleffekt auf dein Layout hat; es funktioniert in Bezug auf das Layout sehr ähnlich wie display:inline
, das derzeit verwendet wird. Aber fühle dich frei, auch mit den anderen Punkten zu experimentieren; Ich habe versucht, so viele Informationen wie möglich zu geben, um dir zu helfen zu verstehen, wie diese Dinge zusammenwirken; Ein großer Teil des Verständnisses von CSS besteht darin zu verstehen, wie verschiedene Stile zusammenwirken.
Hier ist ein Ausschnitt mit deinem Code, mit einem hinzugefügten display:inline-block
, um zu zeigen, wie nah du dran warst.
.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;
}
Test Test Test Test Test Test
Nützliche Referenzen: