J'ai un nombre indéterminé d'éléments de cellule de table à l'intérieur d'un conteneur de table.
<div style="display:table;">
<div style="display:table-cell;"></div>
<div style="display:table-cell;"></div>
</div>
Existe-t-il un moyen CSS pur pour que les cellules du tableau aient la même largeur même si elles ont un contenu de taille différente?
Merci.
Edit: Avoir une largeur maximale impliquerait de savoir combien de cellules vous avez je pense?
html
css
html-table
Harry
la source
la source
Réponses:
Voici un violon fonctionnel avec un nombre indéterminé de cellules: http://jsfiddle.net/r9yrM/1/
Vous pouvez fixer une largeur à chaque parent
div
(la table ), sinon elle sera de 100% comme d'habitude.L'astuce consiste à utiliser une
table-layout: fixed;
certaine largeur sur chaque cellule pour la déclencher, ici 2%. Cela déclenchera l' autre algorithme de table, celui où les navigateurs s'efforcent de respecter les dimensions indiquées.Veuillez tester avec Chrome (et IE8- si nécessaire). C'est OK avec un Safari récent mais je ne me souviens pas de la compatibilité de cette astuce avec eux.
CSS (instructions pertinentes):
EDIT (2013): Méfiez-vous de Safari 6 sur OS X, il est
table-layout: fixed;
erroné (ou peut-être juste différent, très différent des autres navigateurs. Je n'ai pas relu la mise en page de la table CSS2.1 REC;)). Soyez prêt à des résultats différents.la source
div
s supplémentairesdisplay:table
à utiliser comme s'il s'agissait de lignes, pasdisplay:tabl-row
comme certains pourraient s'y attendre. Exemple ici ..my-cell { width: 100%; }; @media screen and (min-width:0\0) { .my-cell { width: 1%; } }
Le hack CSS vient d'ici: stackoverflow.com/a/24321386/6962HTML
CSS
DEMO.
la source
Le simple fait d'utiliser
max-width: 0
l'display: table-cell
élément a fonctionné pour moi:la source
0px
n'est pas une unité valide. Cela devrait juste être0
.Remplacer
avec
Regardez tous les problèmes liés à la tentative de faire fonctionner les divs comme des tableaux. Ils ont dû ajouter table-xxx pour imiter les dispositions de tableau
Les tableaux sont pris en charge et fonctionnent très bien dans tous les navigateurs. Pourquoi les abandonner? le fait qu'ils aient dû les imiter est la preuve qu'ils ont bien fait leur travail.
À mon avis, utilisez le meilleur outil pour le travail et si vous voulez des données tabulées ou quelque chose qui ressemble à des tables de données tabulées, fonctionne simplement.
Réponse très tardive, je sais mais cela vaut la peine d'être exprimé.
la source
<nav>
,<ul>
etc.display: table-etc
(tout naturellement). Je ne passe pas mes journées à créer des liens imitant des divs ou des divs imitant des tables, des étendues ou des entrées: j'utilise juste du CSS pour le style. Enfin, bonne chance avec IE9 pour appliquer toute autre valeur dedisplay
propriété aux éléments table, tr, td.cela fonctionnera pour tout le monde
Cela fonctionnera également pour les données de table créées par itération
la source
Voici:
http://jsfiddle.net/damsarabi/gwAdA/
Vous ne pouvez pas utiliser width: 100px, car l'affichage est une cellule de tableau. Vous pouvez cependant utiliser Max-width: 100px. alors votre boîte ne dépassera jamais 100px. mais vous devez ajouter overflow: hidden pour vous assurer que le contect ne saigne pas dans les autres cellules. vous pouvez également ajouter un espace blanc: nowrap si vous souhaitez empêcher la hauteur d'augmenter.
la source
Cela peut être fait en définissant le style de cellule de tableau sur
width: auto
et le contenu vide. Les colonnes ont maintenant la même largeur, mais ne contiennent aucun contenu.Pour insérer du contenu dans la cellule, ajoutez un
div
avec css:Vous devez également ajouter
position: relative
aux cellules.Vous pouvez maintenant mettre le contenu réel dans le div mentionné ci-dessus.
https://jsfiddle.net/vensdvvb/
la source