Pourquoi est-ce possible?
Il semble que cette section sur w3.org suggère que text-overflow ne s'applique qu'aux éléments de bloc:
11.1. Overflow Ellipsis: the ‘text-overflow' property
text-overflow clip | ellipsis | <string>
Initial: clip
APPLIES TO: BLOCK CONTAINERS <<<<
Inherited: no
Percentages: N/A
Media: visual
Computed value: as specified
Le MDN a dit la même chose.
Cette jsfiddle a votre code (avec un peu de debug modifications), qui fonctionne très bien si elle est appliquée à un div
au lieu de td
. Il a également la seule solution que je pouvais penser rapidement d', en enveloppant le contenu de l' td
dans un contenant div
bloc. Cependant, cela ressemble à "laid" balisage pour moi, donc je suis en espérant que quelqu'un d'autre a une meilleure solution. Le code pour tester cela ressemble à ceci:
td, div {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border: 1px solid red;
width: 80px;
}
Works, but no tables anymore:
<div>Lorem ipsum and dim sum yeah yeah yeah. Lorem ipsum and dim sum yeah yeah yeah. Lorem ipsum and dim sum yeah yeah yeah. Lorem ipsum and dim sum yeah yeah yeah. Lorem ipsum and dim sum yeah yeah yeah.</div>
Works, but non-semantic markup required:
<table><tr><td><div>Lorem ipsum and dim sum yeah yeah yeah. Lorem ipsum and dim sum yeah yeah yeah. Lorem ipsum and dim sum yeah yeah yeah. Lorem ipsum and dim sum yeah yeah yeah. Lorem ipsum and dim sum yeah yeah yeah.</div></td></tr></table>