Pour les tableaux à largeur dynamique, j'ai trouvé la méthode ci-dessous qui donne des résultats satisfaisants. Chaque <th>
dont on souhaite qu'il ait une capacité de texte tronqué doit avoir un élément d'habillage intérieur qui enveloppe le contenu de l'élément <th>
permettre text-overflow
pour travailler.
La véritable astuce consiste à définir max-width
(sur le site <th>
) en vw
unités .
La largeur de l'élément sera ainsi "liée" à la largeur de la fenêtre de visualisation (fenêtre du navigateur) et il en résultera un écrêtage réactif du contenu. Définir la largeur de l'élément vw
à une valeur satisfaisante nécessaire.
CSS minimal :
th{ max-width:10vw; }
th > .wrap{
text-overflow:ellipsis;
overflow:hidden;
white-space:nowrap;
}
Démonstration (avec textes modifiables) :
document.designMode="on"
table {
font: 18px Arial;
width: 40%;
margin: 1em auto;
color: #333;
border: 1px solid rgba(153, 153, 153, 0.4);
}
table td, table th {
text-align: left;
padding: 1.2em 20px;
white-space: nowrap;
border-left: 1px solid rgba(153, 153, 153, 0.4);
}
table td:first-child, table th:first-child {
border-left: 0;
}
table th {
border-bottom: 1px solid rgba(153, 153, 153, 0.4);
font-weight: 400;
text-transform: uppercase;
max-width: 10vw;
}
table th > .wrap {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
<table>
<thead>
<tr>
<th>
<div class="wrap" title="Some long title">Some long title</div>
</th>
<th>
<div class="wrap">Short</div>
</th>
<th>
<div class="wrap">medium one</div>
</th>
<th>
<div class="wrap" title="endlessly super long title which no developer likes to see">endlessly super long title which no developer likes to see</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>-</td>
<td>-</td>
<td>-</td>
<td>very long text here</td>
</tr>
</tbody>
</table>
2 votes
Duplication possible de CSS text-overflow dans une cellule de tableau ?
0 votes
Il s'agit en quelque sorte d'un doublon, mais la réponse ne propose pas de solution de contournement (comme le fait Arlen Cuss).
1 votes
width
yheight
sur les cellules du tableau sont toujours utilisées comme minimal la largeur et la hauteur. Les cellules des tableaux sont différentes !1 votes
@FlorianMargaine En fait, l'autre question propose une solution de contournement : placer un div dans la cellule avec la largeur souhaitée.
0 votes
Je préfère toutefois les réponses figurant sur cette page.
0 votes
Para
text-overflow:ellipsis
pour fonctionner, voici les conditions à remplir : stackoverflow.com/a/33061059/3597276