Dans mon tableau, 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 supérieure à 100px
. Comment pourrais-je désactiver cette extension?
html
css
column-width
Misha Moroshko
la source
la source
table-layout:fixed;
est la solutionRéponses:
J'ai joué avec un peu parce que j'avais du mal à le comprendre.
Vous devez définir la largeur de la cellule (que ce soit
th
outd
travaillé, j'ai défini les deux) ET définissez letable-layout
surfixed
. Pour une raison quelconque, la largeur de la cellule ne semble rester fixe que si la largeur de la table est également définie (je pense que c'est idiot mais quoi).En outre, il est utile de définir la
overflow
propriété pourhidden
empêcher tout texte supplémentaire de sortir du tableau.Vous devez également vous assurer de laisser toutes les bordures et tailles pour CSS.
Ok alors voici ce que j'ai:
Le voici dans JSFiddle
Ce type avait un problème similaire: largeurs des cellules du tableau - largeur de fixation, habillage / tronquage des mots longs
la source
overflow: visible
pour les tableaux de taille dynamique, tant que la taille des cellules est fixe et que le débordement est visible, peu importe si la taille du tableau lui-même est plus grande ou plus petite que les cellules réelles.Voir: http://www.html5-tutorials.org/tables/changing-column-width/
Après la balise table, utilisez l'élément col. vous n'avez pas besoin d'une balise de fermeture.
Par exemple, si vous aviez trois colonnes:
la source
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.aspAjoutez simplement une
<div>
étiquette à l'intérieur<td>
ou<th>
définissez la largeur à l'intérieur<div>
. Cela vous aidera. Rien d'autre ne fonctionne.par exemple.
la source
style="width: 50px"
sur le<td>
<td>
ne l'est pas.Si vous avez besoin d'une ou plusieurs colonnes de largeur fixe alors que d'autres colonnes doivent être redimensionnées, essayez de définir les deux
min-width
etmax-width
la même valeur.la source
table-layout: fixed;
.Vous devez écrire ceci dans le CSS correspondant
la source
Ce que je fais c'est:
Réglez la largeur td:
Définissez la largeur td avec CSS:
Réglez à nouveau la largeur comme max et min avec CSS:
Cela semble un peu répétitif mais cela me donne le résultat souhaité. Pour y parvenir avec beaucoup de facilité, vous devrez peut-être mettre les valeurs CSS dans une classe dans votre feuille de style:
puis:
Placez l'attribut de classe à celui que
<td>
vous souhaitez.la source
J'ai utilisé ça
la source
Si vous ne souhaitez pas une mise en page fixe, spécifiez une classe pour que la colonne soit correctement dimensionnée.
CSS:
HTML:
la source
Il permet également, de mettre dans la dernière "cellule de remplissage", avec largeur: auto . Cela occupera l'espace restant et laissera toutes les autres dimensions comme spécifié.
la source
Faites en sorte que la réponse acceptée réponde pour les petits écrans lorsqu'ils sont inférieurs à la largeur fixe.
HTML:
CSS
JS Fiddle
https://jsfiddle.net/w9s3ebzt/
la source
Réglage de ceci:
A travaillé pour moi.
la source
KAsun a la bonne idée. Voici le bon code ...
la source
Selon ma réponse ici , il est également possible d'utiliser une tête de tableau (qui peut être vide) et d'appliquer des largeurs relatives pour chaque cellule de tête de tableau. Les largeurs de toutes les cellules du corps du tableau seront conformes à la largeur de leur en-tête de colonne. Exemple:
HTML
CSS
Voir résultat
Sinon, utilisez
colgroup
comme suggéré dans la réponse de Hyathin.la source
J'utilise un élément :: after dans la cellule où je veux définir une largeur minimale quel que soit le texte présent, comme ceci:
Je n'ai pas besoin de définir la largeur sur le parent de la table ni d'utiliser la disposition de table.
la source
J'ai trouvé que la réponse de KAsun fonctionne mieux en utilisant vw au lieu de px comme ceci:
<td><div style="width: 10vw" >...............</div></td>
C'était le seul style dont j'avais besoin pour ajuster la largeur de la colonne
la source
Vous n'avez pas besoin de définir
"fixed"
- tout ce dont vous avez besoin est de définiroverflow:hidden
puisque la largeur de colonne est définie.la source