parvenir à l'égalité de la hauteur des colonnes dans un réactif / mise en page flexible
Je suis en train de réaliser l'égalité de la hauteur des colonnes sur un responsive site web.
Cela signifie que je suis en utilisant requêtes de média de fournir plusieurs mises en page pour un site web en fonction de la taille de l'appareil et de la fenêtre.
J'ai 2 colonnes qui doivent avoir la même hauteur. Il est facile à atteindre lors de la mise en page est fixe. J'ai trouvé des dizaines de scripts qui le font et ça marche bien.
Cependant, quand je redimensionner la fenêtre du navigateur, qui généré hauteur ne change pas. Donc, si la fenêtre est plus petite, la hauteur des colonnes reste le même qu'avant et le contenu des colonnes, des débordements. C'est laid.
Est-il un moyen qui a généré la hauteur pouvait changer comme je l'redimensionner la fenêtre ?
Remarque : en raison de ce qui est à l'intérieur de l'colonnes je ne peut pas utiliser de CSS truc issus de différents milieux, images, etc. J'ai vraiment VRAIMENT besoin des deux colonnes pour vraiment avoir la même hauteur à tout moment.
J'ai écrit un simple plugin jQuery pour réaliser ceci: github.com/johnnyfaldo/equal-heights-responsive
Voici une autre alternative qui traite de la même question: github.com/Sam152/Javascript-Equal-Height-Responsive-Rows
Peut-être certains de meilleurs exemples ici stackoverflow.com/questions/13029090/...
OriginalL'auteur FlowerMountain | 2011-05-18
Vous devez vous connecter pour publier un commentaire.
Cette question est déjà assez vieux, mais je n'ai pas de tomber sur la bonne solution pour moi-même jusqu'à présent.
Une solution de travail serait un plugin jQuery qui fait quelque chose comme le réglage de la hauteur des colonnes à "auto", la mesure qui est la plus haute et de définir les colonnes à la hauteur. Quelque chose le long des lignes de ce:
Vous pouvez voir ce en action ici: [email protected]
Le plugin prend en charge deux options:
childrenSelector
: (Facultatif) Le sélecteur, pour les enfants, qui devraient obtenir la même hauteur sont repris. Par défaut*
, alors tout votre parent est amené à égale hauteur. Mis à>
de choisir seulement les enfants directs ou quelque chose d'autre pour obtenir l'effet désiré.minWidth
: (Facultatif) Le minimum de la largeur de la fenêtre d'affichage au-dessus de la largeur du Plugin est de travail et de calculer des hauteurs égales pour le sélectionné enfants. Au-dessous de leur hauteur est définie àauto
. Cela est très pratique si vos conteneurs sont disposés au-dessous les uns des autres et ne devrait pas avoir une hauteur égale. Vide et inactif par défaut.Alors que cela fonctionne très bien dans tous les navigateurs avec qui j'ai testé, c'est un très hackish solution, alors peut-être que quelqu'un ici peut proposer quelque chose de mieux. J'ai pensé à copier les colonnes et leurs wrapper pour conteneur caché dans le document, mais ce n'est pas moins propre et produit un plus grand encombrement.
Par la route: cette approche par Nicolas Gallagher est déjà assez vieux, mais les feuilles de style CSS et fonctionne bien dans tous les up-to-date navigateurs noways: nicolasgallagher.com/multiple-backgrounds-and-borders-with-css2
OriginalL'auteur bfncs
Mon préféré astuce pour la création d'égale hauteur des colonnes que de travailler presque partout est de définir "overflow:hidden" sur un wrapper div, et la définition d'une immense positif remplissage en bas et un négatif en bas de la marge sur les colonnes elles-mêmes. Maintenant, les colonnes seront toujours à la hauteur totale de l'emballage, quelle que soit la hauteur de l'emballage.
Savoir -
Voici un JSFiddle exemple - http://jsfiddle.net/yJYTT/
Aussi loin QUE je peux dire, si vous avez des ombres ou d'autres effets sur le fond, qui nécessitent une marge, ou à la marge, il semble, cette technique ne sera pas un bon choix.
Il fonctionne très bien, thnx pour cette utile commen @Anupam
Cette technique peut aussi être problématique avec sur la page d'ancres
OriginalL'auteur Anupam Jain
J'ai écrit un petit plugin jQuery pour cela: http://github.com/jsliang/eqHeight.coffee/
Testé sur Chrome, Firefox et IE9 et cela fonctionne pour moi.
OriginalL'auteur jsliang
Cela fonctionne très bien! Pour le faire fonctionner à l'intérieur d'un réactif de mise en page que vous aurez besoin d'ajouter les @ media query de sorte qu'il n'est utilisé que sur des tailles d'écran de "plus grand que" votre point de rupture. Sinon, la barre latérale de couleur s'étend vers le bas dans le contenu de la tablette et téléphone de vues. Voici à quoi il ressemble dans un réactif de la feuille de style:
OriginalL'auteur Artisan Web and Print
J'ai piraté la solution de la boundaryfunctions de la réponse à prendre en considération responsive modèles sur lesquels les panneaux de redistribution au-dessus les uns des autres.
En cochant contre le premier décalage.en haut, j'ai été en mesure de détecter l'orientation des panneaux et redimensionner leurs
.panel-body
élément ou affecter une auto de hauteur pour redistribué les panneaux.Exemple ici: http://bootply.com/render/104399
OriginalL'auteur Andy Gee
Peu de temps après, la question que je sais - mais - la dernière fois que j'ai eu à résoudre ce problème j'ai piraté le cette jquery plugin:
http://css-tricks.com/equal-height-blocks-in-rows/
évidemment $(window).redimensionner est la partie cruciale - que ça va re-aligner les hauteurs, une fois la ré-taille a eu lieu. En prenant un pas de plus j'ai toujours voulu regarder dans de rebondir " la colonne de reconformation pour aider à la performance:
http://paulirish.com/2009/throttled-smartresize-jquery-event-handler/
mais n'a jamais obtenu d'aussi loin.
OriginalL'auteur Andrew Parker
J'ai eu le même problème. Après quelques recherches, j'ai sélectionné le faux colonne technique. Consultez ce blog post que j'ai écrit sur la façon de le faire fonctionner dans un responsive design.
Réactif hauteur (hauteur égale) des colonnes à l'aide de la faux de colonnes technique
OriginalL'auteur Sylvain