Set de table vide à la hauteur de la cellule 100%
J'ai une ligne de la table qui contient 3 td
s. Dans le milieu td
il y a du texte, de sorte qu'il a une certaine hauteur, comme 100px.
Les deux td
s sur la gauche et la droite contenir un tableau à chaque affichage d'une (plus tard) zone cliquable qui est censé avoir la même hauteur que le milieu td
- donc 100px dans mon exemple.
Malheureusement, seulement Firefox s'étend sur la gauche et la droite td
s à 100% de la hauteur. Chrome, Safari et IE viens de le mettre sur le minium de hauteur.
Voici le violon: http://jsfiddle.net/X3YAu/
J'ai joué avec le display
bien, mais il n'a pas aidé. Ne pas le 100% de la hauteur de référence à l'élément parent, et si oui, pourquoi ne pas le td
s strech 100% de la hauteur de l'élément parent?
<tr>
?veuillez faire tripoter essentiel de la css et de l'HTML.
Je connais le html semble compliqué - et c'est, mais j'ai déjà essayé de choisir seulement l'essentiel. Le vrai truc est beaucoup plus lourd
cochez cette jsfiddle.net/X3YAu/7
OriginalL'auteur Horen | 2012-08-31
Vous devez vous connecter pour publier un commentaire.
Mettre le
dans votre vide<td></td>
devrait aider.Ajout d'infos:
J'ai réécrit entièrement votre code, car vous avez beaucoup de balises inutiles, cela devrait fonctionner:
Comme vous le voyez, au lieu d'utiliser empty
<td>
s , je viens de mettre un avec l'argumentcolspan="3"
propagation d'un td entièrement sur trois colonnes.Voici une démo: jsbin LIEN
Noter que, je n'ai pas utilisé de
border-radius
etborder
css comme vous l'avez fait, de maintenir le code le plus court possible, de sorte que vous pouvez obtenir l'idée.La td est affiché, ce n'est pas le problème. Le problème est que la hauteur ne s'ajuste pas à 100%...
ok, votre code est écrit dans les pas de la meilleure façon, par exemple, vous avez beaucoup de vide
td
s dans votre tableau, vous pouvez utilisercolspan
attribut de groupe tous pour untd
. je suis à jour de ma réponse, ainsi que lahtml
code.OriginalL'auteur aspirinemaga
Une autre astuce est d'utiliser le
:after
pseudo-élément:Cela devrait fonctionner dans n'importe quel navigateur (testé dans Chrome sur Windows 7) et vous permet d'économiser beaucoup de
et sépare la meilleure présentation de la logique.OriginalL'auteur Gianluca Mancini
il n'y a pas une telle chose comme
height: 100%.
Un élément ne peut jamais remplir ses parents hauteur juste en passant
height: 100%
, les solutions pour ajouter
outable {empty-cells: show;}
devrait faire l'affaire, mais sans une hauteur spécifique, vous ne jamais obtenir l'effet désiré.FireFox gère chose l'autre sens, comme le Chrome, Safari ou Opera et Internet Explorer. ne pas en faire une référence si FF t-il, et tous les autres navigateurs ne le font pas. comme je l'ai dit: il n'y a pas une telle chose un height: 100%.
comment se fait-il fonctionne dans Chrome lors de la configuration de
.ghost.column
àdisplay: inline-block;
? jsfiddle.net/X3YAu/10C'est parce que vous êtes mauvais. Bien sûr, un élément peut remplir son parent de la hauteur en passant
height: 100%
jsfiddle.net/G8hwd/1 Il serait horrible si elle ne l'a pas fait...ok, c'est parce que vous êtes de passage à une hauteur de vos parents, mais dans votre problème d'origine (pour revenir à votre première question, vous n'êtes pas en passant une hauteur de l'élément parent (dans votre jsfiddle), de sorte que l'enfant ne prendra autant de hauteur dont il a besoin. et c'est ce que je veux dire, il n'y a pas de hauteur: 100% si pas de hauteur est définie
OriginalL'auteur Mark
Le meilleur moyen serait d'utiliser le CSS.
La
chemin est un bon moyen, mais c'est un peu un hack.Bien que les cellules ne sont pas vraiment vide, il y a un
div
et unspan
à l'intérieur. Lediv
est positionné par rapport et laspan
absolue siLe vide-les cellules de travail CSS pour votre question?
non, il n'est pas. le
td
est affiché, ce n'est pas le problème. Le problème est que la hauteur ne s'ajuste pas à 100%...empty-cells: show
est la valeur par défaut et donc pas la peine d'être précisé.OriginalL'auteur Ryan McDonough
Est-il ok pour utiliser jQuery dans votre solution? Si oui, pourrais-tu mettre la suite dans une fonction et de l'appeler en charge, et à chaque fois que la table est redimensionnée (si il redimensionne)
Je me demande également si l'aide de tableaux est la meilleure approche pour votre objectif? Est-il une raison pour cela, ou cela pourrait-il être possible d'essayer en utilisant
<div>
éléments à la place?De Travail De Démonstration:
http://jsfiddle.net/X3YAu/14/
OriginalL'auteur JDandChips
J'ai trouvé cette réponse dans un autre thread et cela a fonctionné. Il n'y a pas besoin de mettre des espaces supplémentaires pour les cellules vides de cette façon.
OriginalL'auteur Fiona
Vous avez juste besoin d':
C'est tout et il a travaillé pour moi
OriginalL'auteur LagMaster