Compte tenu du balisage suivant, comment pourrais-je utiliser CSS pour forcer une cellule (toutes les cellules de la colonne) à s'adapter à la largeur du contenu qu'il contient plutôt qu'à l'étirer (ce qui est le comportement par défaut)?
<style type="text/css">
td.block
{
border: 1px solid black;
}
</style>
<table style="width: 100%;">
<tr>
<td class="block">this should stretch</td>
<td class="block">this should stretch</td>
<td class="block">this should be the content width</td>
</tr>
</table>
EDIT: Je me rends compte que je pourrais coder en dur la largeur, mais je préfère ne pas le faire, car le contenu qui ira dans cette colonne est dynamique.
En regardant l'image ci-dessous, la première image est ce que le balisage produit. La deuxième image est ce que je veux.
html
css
html-table
Mansfield
la source
la source
Réponses:
Je ne sais pas si je comprends votre question, mais je vais essayer. JSfiddle de l'exemple .
HTML:
CSS:
la source
<table style="width:100%">
au lieu de<table width="100%" >
Réglage
va résoudre votre problème.
la source
Pour moi, c'est le meilleur ajustement automatique et redimensionnement automatique pour le tableau et ses colonnes (utilisez css! Important ... seulement si vous ne pouvez pas sans)
Ne spécifiez pas la largeur CSS pour le tableau ou les colonnes du tableau. Si le contenu du tableau est plus grand, la taille de l'écran passera à.
la source
La définition de la largeur CSS à 1% ou 100% d'un élément selon toutes les spécifications que j'ai pu découvrir est liée au parent. Bien que Blink Rendering Engine (Chrome) et Gecko (Firefox) au moment de la rédaction semblent bien gérer ce 1% ou 100% (faire rétrécir une colonne ou une colonne pour remplir l'espace disponible), il n'est pas garanti selon toutes les spécifications CSS Je pourrais trouver à le rendre correctement.
Une option consiste à remplacer le tableau par des divs flex CSS4:
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Cela fonctionne dans les nouveaux navigateurs ie IE11 + voir le tableau au bas de l'article.
la source
Il y a plusieurs façons de procéder!
corrigez-moi si je me trompe mais la question cherche ce genre de résultat.
Les 2 premiers champs "partageront" la page restante (REMARQUE: si vous ajoutez plus de texte à l'un ou l'autre des champs à 50%, cela prendra plus d'espace), et le dernier champ dominera constamment le tableau.
Si vous êtes heureux de laisser l' habillage du texte, vous pouvez déplacer l' espace blanc: nowrap; au style du 3ème champ
sera le seul moyen de commencer une nouvelle ligne dans ce domaine.
alternativement, vous pouvez définir une longueur sur le dernier champ à savoir. largeur: 150px, et laissez le pourcentage sur les 2 premiers champs.
J'espère que cela t'aides!
la source
Facile :
la source