L'une des colonnes de ma table peut contenir un texte long sans espaces. Comment puis-je limiter sa largeur à, par exemple, 150 pixels? Je ne veux pas qu'il soit toujours à 150 pixels (s'il est vide, cela devrait être étroit), mais s'il y a un long texte, je souhaite qu'il soit limité à 150 pixels et que le texte soit mis en forme.
Voici un exemple de test: http://jsfiddle.net/Kh378/ (limitons la 3ème colonne).
Merci d'avance.
Mettre à jour:
Réglage de ces styles:
Word-wrap: break-Word;
max-width: 150px;
ne fonctionne pas dans IE8 (testé sur différents ordinateurs) et je suppose que cela ne fonctionne dans aucune version de IE.
Sur les balises td
et th
de la table, j'ai ajouté:
Word-wrap: break-Word;
max-width: 150px;
Pas totalement compatible dans tous les navigateurs mais un début.
Vous devez utiliser la largeur à la place.
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th style="width: 150px;"></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Mais juste dans la section <thead>
.
Vous devriez pouvoir styliser votre colonne avec:
max-width: 150px;
Word-wrap: break-Word;
Notez que Word-wrap
est pris en charge par les navigateurs IE 5.5+, Firefox 3.5+ et WebKit (Chrome et Safari).
Après quelques expériences avec Chrome, je suis arrivé à ceci:
<th>
qui devrait avoir un "largeur" ou un "max-largeur" défini <td>
doit avoir défini une "largeur maximale" et un "Word-wrap: break-Word;"Si vous utilisez une "largeur" dans le <th>
, sa valeur sera utilisée. Si vous utilisez un "max-width" dans <th>
, la valeur "max-width" du <td>
est utilisée à la place.
Donc, cette fonctionnalité est assez complexe. Et je n'ai même pas étudié les tables sans en-têtes ou sans longues chaînes nécessitant un "mot clé".
c'est très facile
Vous pouvez ajouter des attributs comme ceux-ci
largeur maximale
hauteur maximum
Ils peuvent être définis en HTML en tant qu'attribut ou en CSS en tant que style
il y a une option pour simuler max-width:
simulateMaxWidth: function() {
this.$el.find('th').css('width', ''); // clear all the width values for every header cell
this.$el.find('th').each(function(ind, th) {
var el = $(th);
var maxWidth = el.attr('max-width');
if (maxWidth && el.width() > maxWidth) {
el.css('width', maxWidth + 'px');
}
});
}
cette fonction peut être appelée plusieurs fois sur $ (fenêtre) .on ('redimensionner', ...)
this.$el
représente l'élément parent, dans mon cas, j'ai la marionnette
pour les éléments th qui devraient avoir max-width, il devrait y avoir un attribut max-width comme:
<th max-width="120">
1) Spécifiez la largeur de chaque colonne dans <th>
en fonction de vos besoins.
2) Ajoutez le retour à la ligne pour chaque <td>
dans <tr>
du <table>
.
Word-wrap: break-Word;