Table de verrouillage des cellules pour leur taille par défaut quel que soit le contenu
Si j'ai
<table>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
et
table
{ width: 100%; height: 100%; }
Chaque cellule prend une égale au quart de la table, et la table s'étend pour s'adapter à la fenêtre.
Comment puis-je éviter ces cellules de se redimensionner pour s'adapter le contenu à l'intérieur des cellules (bien que toujours côté de la table contenant)?
OriginalL'auteur Nick | 2011-01-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer de
table-layout:fixed;
- ce qui définit la mise en page d'une certaine taille fixe (spécifié dans le CSS) et ignore le contenu des cellules, de sorte que la largeur de la cellule ne change jamais. Je ne suis pas sûr si cela affecte la disposition verticale ou pas.Plus d'infos sur w3schools.
Toute solution à la verticale?
Je pense que ma réponse à cette question fonctionne pour la verticale.
OriginalL'auteur whostolemyhat
Vous pouvez essayer de sélectionner une seule cellule à mâcher tout l'espace et définir à 100% de la hauteur et de la largeur:
et un peu de CSS:
Et un live exemple. Vous devez être prudent pour éviter les mauvaises retour à la ligne lorsque
.space-hog
fait sa chose, d'où lewhite-space: nowrap
. Si vous mettez la.space-hog
dans la dernière ligne, alors vous pouvez éviter de pousser les parties intéressantes de down.Bon, il n'était pas clair pour moi. Je ne pense pas qu'il y est une façon de dire "fais toutes ces choses de la même taille" dans le CSS, vous avez à dire "faire toutes ces choses Wpx large et Hpx haut" et de calculer les dimensions vous-même sur le serveur ou en JavaScript. Peut-être fournir plus de contexte dans la question et quelqu'un pourrait venir avec une toute nouvelle approche qui évite le tableau de dimensionnement kludges entièrement.
OriginalL'auteur mu is too short
td{ width:50%; }
fonctionnera jusqu'à ce que le tableau devient assez petit.Je ne peux pas penser à un pur HTML/CSS solution, vous aurez probablement besoin de Javascript. Vous pouvez essayer de jouer avec le CSS propriété overflow.
OriginalL'auteur Jake
Vous pouvez le faire en utilisant
position: absolute
sur le contenu de chaque cellule du tableau: parce que si vous le faites alors que la taille du contenu n'affecte pas la taille de la cellule.Pour ce faire, vous devez alors également la position de la table de cellules (de sorte que le positionnement absolu du contenu est relatif à la cellule du tableau) -- et/ou, à l'appui de Firefox, position à un supplément de div dans les cellules du tableau depuis Firefox ne permet pas d'appliquer de la position pour les cellules elles-mêmes.
Par exemple, je suis en utilisant ce code HTML:
Avec le code CSS suivant, de sorte que la taille de l'image n'affecte pas la taille de la cellule qui le contient:
J'ai mis le
height
etwidth
dediv.bigimg
à100%
pour correspondre à la taille de latd
qui le contient, parce que je suis à l'aide de JavaScript pour redimensionner les images au moment de l'exécution pour les adapter à leurs conteneurs, qui sont lesdiv.bigimg
.Je ne comprends pas votre commentaire/question. Vous pourriez peut-être poster une nouvelle question.
OriginalL'auteur ChrisW
J'ai réussi à le faire sans fixe de la table.
La cellule css:
OriginalL'auteur Galvani
Vous pouvez également verrouiller les cellules à un pourcentage, afin de maintenir la réactivité, par exemple:
OriginalL'auteur Vinnie James
Quelque chose le long des lignes de l'aide
overflow:hidden;
peut-être?OriginalL'auteur nchpmn
Ajouter
table-layout:fixed;
à la table du style.Si vous remarquez que cela permet de fixer la largeur mais pas la hauteur, c'est parce qu'il peut toujours exister une sorte de rembourrage à l'intérieur de chaque td cellule. Ajouter
padding:0px;
à la td style.OriginalL'auteur Amy Liu