CSS table-cell largeur égale
J'ai un nombre indéterminé de table-cell éléments à l'intérieur d'un tableau contenant.
<div style="display:table;">
<div style="display:table-cell;"></div>
<div style="display:table-cell;"></div>
</div>
Est-il un pur CSS de façon à obtenir la table de cellules à la même largeur, même s'ils ont différentes tailles de contenu?
Grâce.
Edit: Avoir un max-width supposerait de connaître le nombre de cellules que vous avez, je pense?
- Comment est le nombre de colonnes déterminé: client ou côté serveur?
- Après j'ai essayé plusieurs méthodes, je pense que si vous voulez avoir plusieurs lignes et que vous souhaitez de largeur égale, l'utilisation flexbox au lieu de table
Vous devez vous connecter pour publier un commentaire.
Ici est un travail de violon à durée indéterminée nombre de cellules: http://jsfiddle.net/r9yrM/1/
Vous pouvez fixer une largeur de chaque parent
div
(le table), sinon ça va être 100% comme d'habitude.L'astuce est d'utiliser
table-layout: fixed;
et une partie de largeur sur chaque cellule de déclenchement, voici 2%. Qui va déclencher le autres table algorightm, celui où les navigateurs essayez très difficile de respecter les dimensions indiquées.S'il vous plaît tester avec Chrome (et IE8 si nécessaire). C'est OK avec une récente Safari mais je ne me souviens pas de la compatibilité de ce truc avec eux.
CSS (les instructions):
ÉDITION (2013): Méfiez-vous de Safari 6 sur OS X, il a
table-layout: fixed;
mal (ou peut-être juste différent, très différent des autres navigateurs. Je n'ai pas le temps de relire CSS2.1 REC disposition de table 😉 ). Être préparé à des résultats différents.div
s avecdisplay:table
être utilisées comme si elles étaient rangées, pasdisplay:tabl-row
que certains pourraient s'attendre. Exemple..my-cell { width: 100%; }; @media screen and (min-width:0\0) { .my-cell { width: 1%; } }
Le CSS hack est ici: stackoverflow.com/a/24321386/6962HTML
CSS
DÉMO.
Juste en utilisant
max-width: 0
dans ledisplay: table-cell
élément a fonctionné pour moi:CSS:
HTML:
0px
n'est pas valide unité. Il faut juste être0
.Remplacer
avec
Regardez tous les aspects se rapportant à essayer de faire de divs effectuer comme des tableaux. Ils ont dû ajouter une table-xxx pour imiter des dispositions de table
Tables sont pris en charge et fonctionne très bien dans tous les navigateurs. Pourquoi le fossé entre eux? le fait qu'ils avaient de les imiter en est la preuve qu'ils ont fait leur travail et le bien.
À mon avis d'utiliser le meilleur outil pour le travail et si vous voulez que les données totalisées ou quelque chose qui ressemble à des tableaux de données de tables de travail juste.
Très Retard de réponse, je sais, mais vaut la peine d'exprimer.
<nav>
,<ul>
, etc.display: table-etc
(tout naturellement). Je ne passe pas mes journées à faire des liens imitant les divs ou divs imitant les tables, s'étend sur ou entrées: je suis juste à l'aide de CSS pour le style. Enfin, bonne chance avec IE9 pour l'application de toute autre valeur dedisplay
bien à table, tr, td éléments.cela fonctionnera pour tout le monde
HTML:
Cela fonctionnera aussi pour les données de la table créée par itération
Ici, vous allez:
http://jsfiddle.net/damsarabi/gwAdA/
Vous ne pouvez pas utiliser width: 100px, parce que l'affichage est table-cell. Vous pouvez cependant utiliser Max-width: 100px. ensuite votre boîte ne sera jamais plus grand que 100px. mais vous devez ajouter overflow:hidden assurez-vous que le contect ne saignent pas à d'autres cellules. vous pouvez également ajouter white-space: nowrap si vous souhaitez conserver la hauteur d'augmenter.
Cela peut être fait par la mise en tableau-style de cellule à
width: auto
, et le contenu vide. Les colonnes sont maintenant égaux, mais sur la tenue de l'absence de contenu.Pour insérer le contenu de la cellule, ajouter un
div
avec css:Vous devez également ajouter
position: relative
pour les cellules.Maintenant vous pouvez mettre le contenu dans le div parlé ci-dessus.
https://jsfiddle.net/vensdvvb/