Comment puis-je configurer la cellule de tableau à une largeur minimum à l'exception de la dernière colonne?
J'ai une table avec 100% de largeur. Si j'ai mis <td>
s, ils se propage avec la même longueur de colonnes. Cependant, je veux toutes les colonnes sauf la dernière à l'avoir comme petite largeur possible, sans l'habillage du texte.
Ce que j'ai fait la première était que je width="1px"
dans tous les <td>
s, sauf la dernière (bien que déconseillé, mais le style="width:1px"
n'ont pas d'effet), ce qui a bien fonctionné jusqu'à ce que j'avais multi-parole de données dans la colonne. Dans ce cas, pour garder la longueur de la plus petite possible, il a enveloppé mon texte.
Laissez-moi vous montrer. Imaginez ce tableau:
---------------------------------------------------------------------------------
element1 | data | junk here | last column
---------------------------------------------------------------------------------
elem | more data | other stuff | again, last column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
Peu importe ce que je cherche, ce que je reçois est ceci:
---------------------------------------------------------------------------------
element1 | data | junk here | last column
---------------------------------------------------------------------------------
elem | more data | other stuff | again, last column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
ou (même si j'ai mis style="whitespace-wrap:nowrap"
) ce:
---------------------------------------------------------------------------------
| | junk | last
element1 | data | |
| | here | column
---------------------------------------------------------------------------------
| more | other | again,
elem | | | last
| data | stuff | column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
Je veux obtenir le tableau que j'ai présenté en premier. Comment puis-je y parvenir? (Je préfère rester à la norme et à l'aide de CSS. Honnêtement, je ne m'inquiète pas si IE n'a pas mis en œuvre la partie de la norme)
Plus d'explication: Ce dont j'ai besoin est de garder les colonnes aussi court que possible sans emballage mots (dernière colonne doit être aussi grand qu'il doit faire de la largeur de la table en fait atteindre 100%). Si vous connaissez LaTeX, ce que je veux, c'est la manière dont les tables apparaissent naturellement en LaTeX lorsque vous définissez leur largeur à 100%.
Remarque: j'ai trouvé cette mais il me donne toujours le même tableau.
- Apparemment, il est! L'embarras de l'un de trop, étant donné que j'ai juste mal lu le css champ.
Vous devez vous connecter pour publier un commentaire.
whitespace-wrap: nowrap
n'est pas valide css. C'estwhite-space: nowrap
vous êtes à la recherche pour.Cela fonctionne dans Google Chrome, au moins. (jsFiddle)
HTML:
CSS:
width
approche pour mes besoins comme je l'ai plusieurs colonnes larges (plutôt que d'une colonne large que la solution ci-dessus fonctionne le mieux pour). J'ai enlevéwidth: 99%
deexpand
et a ajoutéwidth: 1%
àshrink
et cette solution a bien fonctionné pour moi!td:nth-child(1), td:nth-child(2){white-space:nowrap;} td:nth-child(3){width: 99%;}
-- en tout cas tout les débutants en baisse par. 🙂col
'sclass
des attributs de la valeur de la table correspondantetd
sEn utilisant le code ci-dessus, la dernière table-cell vais essayer d'être le plus grand possible, et de vous prévenir de l'avant que de l'emballage. Cela fait la même chose que les autres réponses, mais de façon plus efficace.
width: 1px;
à la non-dernier enfant de style pour obtenir des non-dernière colonne à rendre avec un minimum de largeur.Sujet légèrement différent, mais peut-être que ça aide quelqu'un qui trébuche sur cette question comme moi.
(je viens de voir le commentaire par Campbeln qui suggère exactement ce après avoir écrit ma réponse ci-dessous, de sorte que ce qui est essentiellement une explication détaillée de son commentaire)
J'ai eu le problème dans l'autre sens: je voulais mettre une colonne de table à la largeur minimale possible sans le briser sur l'espace blanc (dernière colonne dans l'exemple suivant), mais de l'autre, la largeur doit être dynamique (y compris les sauts de ligne):
Solution Simple:
HTML
CSS
Colonnes avec classe
shrink
seulement étendre à la largeur minimale mais d'autres restent dynamiques. Cela fonctionne parce quewidth
detd
est automatiquement étendu pour s'adapter à tout le contenu.Exemple Extrait
CSS:
HTML:
Vous pouvez définir la largeur fixe en plaçant
div
balise à l'intérieur detd
CSS:
HTML:
https://jsfiddle.net/8bf17o1v/
Si vous avez besoin de plusieurs lignes de texte dans une cellule de tableau.
Ne pas utiliser
white-space: nowrap
utilisationwhite-space: pre;
à la place.Dans la cellule de la table d'éviter tout format de code comme de nouvelles lignes et le retrait (espace blanc) et l'utilisation
<br>
pour définir une nouvelle ligne de texte/ligne. Comme ceci:Démo sur CodePen
Une combinaison de
white-space: nowrap
ouwhite-space: pre
avecmin-width: <size>
va faire le travail.width: <size>
sur elle-même n'est pas assez pour tenir la table à partir serrant.