Définir la largeur de colonne constant, indépendamment de la quantité de texte dans ses cellules?
Dans ma table j'ai défini la largeur de la première cellule d'une colonne à 100px
.
Toutefois, lorsque le texte dans l'une des cellules de cette colonne est trop long, la largeur de la colonne devient de plus en plus de 100px
. Comment pourrais-je désactiver cette extension?
- stackoverflow.com/questions/1258416/word-wrap-in-a-html-table pourrait aider à vous diriger dans la bonne direction
- Dans mon cas, pas d'expansion qui s'est passé, mais le contraire: non désirés de rétrécissement de la largeur en dépit de mon explicite de la largeur de la déclaration. Ridicule!
- La seule bonne solution pour cela est d'utiliser colgroup avec des cols en elle, et de définir les cols de la largeur.
table-layout:fixed;
est la solution
Vous devez vous connecter pour publier un commentaire.
J'ai joué avec pendant un peu parce que j'ai eu du mal à essayer de le comprendre.
Vous devez définir la largeur de la cellule (soit
th
outd
travaillé, j'ai mis les deux) ET de définir latable-layout
àfixed
. Pour une raison quelconque, la largeur de la cellule semble être la seule à rester fixe si la largeur de la table est, trop (je pense que c'est idiot, mais whatev).Aussi, il est utile de définir le
overflow
propriétéhidden
pour éviter tout texte supplémentaire de sortir de la table.Assurez-vous de laisser toutes les riverains et de dimensionnement pour le CSS, trop.
Ok, donc voici ce que j'ai:
CSS:
HTML:
Ici, il est en JSFiddle
Ce gars avait un problème similaire: Cellule de tableau des largeurs de fixation de la largeur, de l'emballage et de tronquer les mots longs
overflow: visible
pour les tables de la dynamique de la taille, tant que la taille des cellules est fixe et le trop-plein est visible, il n'a pas d'importance si la taille de la table elle-même est plus grand ou plus petit que les cellules.overflow: hidden;
sur untd
??? 😉width
, même en utilisanttable-layout: fixed
la largeur des colonnes ne sera pas résolu parce que certaines colonnes obtiendrez agrandie pour remplir la largeur de la table, si la somme de toutes les colonnes, la largeur est inférieure à la largeur de la table. Pour éviter que vous avez besoin de ce que @MitjaGustin répondre ci-dessous suggère. Toutefois, si vous spécifiez la largeur de toutes les colonnes, alors il est inutile de préciser la largeur de la table.Voir:
http://www.html5-tutorials.org/tables/changing-column-width/
Après la balise table, utilisez le col de l'élément. vous n'avez pas besoin d'une balise de fermeture.
Par exemple, si vous avez trois colonnes:
table-layout: fixed; width: 100%;
. Merci!col
pour cela. Il suggère l'utilisation de css appliquée à un<td>
(ou un<th
>) - w3schools.com/tags/att_td_width.aspJuste ajouter
<div>
balise à l'intérieur de<td>
ou<th>
définir la largeur à l'intérieur de<div>
.Cela va vous aider. Rien d'autre ne fonctionne.
par exemple.
style="width: 50px"
sur le<td>
<td>
ne l'est pas.Si vous avez besoin d'une ou plusieurs colonnes de largeur fixe, tandis que d'autres colonnes doivent redimensionner, essayez de définir à la fois
min-width
etmax-width
à la même valeur.table-layout: fixed;
n'a pas.min-width
est le tour est joué! Merci.Vous avez besoin d'écrire ce à l'intérieur de la CSS correspondant
Ce que je fais, c'est:
Définir la td width:
Définir la td width CSS:
Définir la largeur de nouveau comme max et min avec CSS:
Il semble peu répétitif, mais ça me donne le résultat souhaité. Pour parvenir à cela avec beaucoup de facilité, vous pouvez avoir besoin de mettre le CSS valeurs dans une classe dans votre feuille de style:
alors:
Place l'attribut de classe de toute
<td>
vous le souhaitez.J'ai utilisé ce
Il permet également, à mettre dans le dernier "de remplissage de la cellule", avec largeur:auto. Cela permettra d'occuper l'espace restant, et de laisser tous les autres dimensions que celles spécifiées.
Si vous ne voulez pas d'une disposition fixe, spécifier une classe pour la colonne à la taille appropriée.
CSS:
HTML:
KAsun a la bonne idée. Voici le bon code...
Faire de la accepté de répondre à répondre pour les petits écrans plus petit que la largeur fixe.
HTML:
CSS
JS Fiddle
https://jsfiddle.net/w9s3ebzt/
La définition de cette:
A fonctionné pour moi.
Que par ma réponse ici, il est également possible d'utiliser un en-tête du tableau (qui peut être vide) et d'appliquer la largeur relative de chaque en-tête du tableau de la cellule. Les largeurs de toutes les cellules dans le corps de table seront conformes à la largeur de leur colonne. Exemple:
HTML
CSS
Afficher Les Résultats
Vous pouvez également utiliser
colgroup
comme suggéré dans Hyathin de réponse.J'ai trouvé KAsun réponse fonctionne mieux en utilisant vw au lieu de px comme suit:
<td><div style="width: 10vw" >...............</div></td>
C'était le seul style que je nécessaire pour ajuster la largeur de colonne
Vous n'avez pas besoin de
"fixed"
- vous n'avez besoin de réglageoverflow:hidden
depuis la largeur de la colonne est définie.