Cette question a été posée plusieurs fois, mais aucune des réponses fournies ne semble m'aider:
Voir ceci en action ici: http://jsfiddle.net/BlaM/bsQNj/2/
J'ai une disposition "dynamique" (basée sur un pourcentage) avec deux colonnes.
.grid {
width: 100%;
box-sizing: border-box;
}
.grid > * {
box-sizing: border-box;
margin: 0;
}
.grid .col50 {
padding: 0 1.5%;
float: left;
width: 50%;
}
Dans chacune de ces colonnes, j'ai un tableau qui est censé utiliser toute la largeur des colonnes.
.data-table {
width: 100%;
}
.data-table td {
white-space: nowrap;
text-overflow: Ellipsis;
overflow: hidden;
}
Mon problème est que certaines des colonnes de ce tableau ont un contenu qui doit être tronqué pour tenir dans la largeur donnée du tableau. Mais cela ne se produit pas. J'obtiens deux tables qui se superposent.
Exigences:
Ce que j'ai essayé:
Questions connexes:
vous devez ajouter la propriété table-layout:
table-layout: fixed;
inclure également width = 100% dans la balise HTML du tableau, pas seulement la balise style.
Peut-être que vous serez intéressé par un max-width: 0;
hack que j'ai découvert.
Il a quelques limites, nous devrions utiliser des tableaux CSS au lieu de HTML, mais cela fonctionne:
.leftBlock
{
width: 100%;
max-width: 0;
Word-wrap: break-Word;
overflow: hidden;
}
.rightBlock
{
width: 200px;
max-width: 200px;
min-width: 200px;
}
Les mesures sur les tables fonctionnent différemment. En général, la largeur d'une cellule de tableau est traitée comme une largeur minimale.
Une solution, si cela ne vous dérange pas d'ajouter du balisage supplémentaire, consiste à mettre un div
à l'intérieur de chaque cellule du tableau dans lequel vous placez le contenu. Donnez ensuite à ce div une largeur, ou une largeur max. Alors
<td>http://www.xxxxxx.xxxxxxx.com/xxx_xxxx/XXXXXXXX/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/XXXXXXXX_xXxxxx</td>
devient
<td><div>http://www.xxxxxx.xxxxxxx.com/xxx_xxxx/XXXXXXXX/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/XXXXXXXX_xXxxxx</div></td>
etc.
Voir le violon mis à jour: http://jsfiddle.net/bsQNj/4/
Edit: Je vois que le violon a besoin d'un peu de travail - j'ai oublié de mettre des divs là où elles étaient nécessaires. Mais j'espère que vous pourrez travailler avec cette idée.
.div {
width:300px;
border:1px solid;
}
.breaked {
Word-break: break-all;
}
table{
border:1px solid red;
}
td {
border:1px solid green;
}
<div class="div">
<table>
<tr>
<td>aaaaaaa_________________________________________-sdasd-ad-f-asfas-df-a a-sd-fa-d-ad-fa-ds-asd-a-ads-fa-df-ads-fa-d-fad-f-ad-fad-ad-sa-fda-df-</td>
<td>13</td>
</tr>
<tr>
<td>ddddddddddddd</td>
<td>aa</td>
</tr>
</table>
<br /><hr/><br />
<table class="breaked">
<tr>
<td>aaaaaaa_________________________________________-sdasd-ad-f-asfas-df-a a-sd-fa-d-ad-fa-ds-asd-a-ads-fa-df-ads-fa-d-fad-f-ad-fad-ad-sa-fda-df-</td>
<td>13</td>
</tr>
<tr>
<td>ddddddddddddd</td>
<td>aa</td>
</tr>
</table>
</div>