J'ai une mise en page fluide utilisant le bootstrap de Twitter, dans lequel j'ai une ligne avec deux colonnes. La première colonne a beaucoup de contenu, que je veux remplir normalement. La deuxième colonne a juste un bouton et du texte, que je veux aligner en bas par rapport à la cellule de la première colonne.
Voici ce que j'ai:
-row-fluid-------------------------------------
+-span6----------+ +-span6----------+
| | |short content |
| content | +----------------+
| that |
| is tall |
| |
+----------------+
-----------------------------------------------
Voici ce que je veux:
-row-fluid-------------------------------------
+-span6----------+
| |
| content |
| that |
| is tall | +-span6----------+
| | |short content |
+----------------+ +----------------+
-----------------------------------------------
J'ai vu des solutions qui font de la première travée une hauteur absolue et positionnent la deuxième travée par rapport à elle, mais une solution où je n'ai pas besoin de spécifier la hauteur absolue de mes divs serait préférée. Je suis également ouvert à une réflexion complète sur la manière d'obtenir le même effet. Je ne suis pas marié à cette utilisation de l'échafaudage, cela me semblait le plus logique.
Cette disposition comme un violon:
Réponses:
Remarque: pour les utilisateurs de Bootstrap 4+, veuillez considérer la solution de Christophe (Bootstrap 4 a introduit flexbox, qui fournit une solution plus élégante uniquement en CSS). Ce qui suit fonctionnera pour les versions antérieures de Bootstrap ...
Voir http://jsfiddle.net/jhfrench/bAHfj/ pour une solution fonctionnelle.
Du coté positif:
pull-down
.Maintenant les mauvaises nouvelles:
la source
.pull-left
et.pull-right
), sans affecter les frères et sœurs. Cela peut-il être fait avec une solution CSS uniquement?Ceci est une solution mise à jour pour Bootstrap 3 (devrait fonctionner pour les anciennes versions) qui utilise uniquement CSS / LESS:
http://jsfiddle.net/silb3r/0srp42pb/11/
Vous définissez la taille de la police sur 0 sur la ligne (sinon vous vous retrouverez avec un espace embêtant entre les colonnes), puis supprimez les flottants de colonne, définissez l'affichage sur
inline-block
, redéfinissez leur taille de police, puisvertical-align
pouvez être défini sur tout ce dont tu as besoin.Aucun jQuery requis.
la source
div
survertical-align: middle;
..myrow
) ... cela ne signifie-t-il pas que vous ne pouvez pas avoir une colonne alignée en haut, une colonne alignée en bas et une troisième colonne alignée en haut?Vous pouvez utiliser flex:
la source
Vous devez ajouter du style pour
span6
, smthg comme ça:et voici votre violon: http://jsfiddle.net/sgB3T/
la source
padding-left: 0
etpadding-right: 0
sur tous les cols de cette ligne.Voici également une directive angularjs pour implémenter cette fonctionnalité
la source
Réglez simplement le parent sur
display:flex;
et l'enfant surmargin-top:auto
. Cela placera le contenu enfant au bas de l'élément parent, en supposant que l'élément parent a une hauteur supérieure à l'élément enfant.Il n'est pas nécessaire d'essayer de calculer une valeur
margin-top
lorsque vous avez une hauteur sur votre élément parent ou un autre élément supérieur à votre élément enfant d'intérêt dans votre élément parent.la source
Sur la base des autres réponses, voici une version encore plus réactive. J'ai apporté des modifications à la version d'Ivan pour prendre en charge les fenêtres <768px de large et pour mieux prendre en charge les redimensionnements de fenêtres lents.
la source
margin-top
à 0, puis le remettre à la nouvelle valeur? Aussi, pourquoi faire ces choses en deuxeach()
«boucles»?Ceci est basé sur la solution de cfx, mais plutôt que de définir la taille de la police à zéro dans le conteneur parent pour supprimer les espaces inter-colonnes ajoutés à cause de l'affichage: bloc en ligne et devoir les réinitialiser, j'ai simplement ajouté
à la colonne divs pour compenser.
la source
Eh bien, je ne l' ai pas comme l' une de ces réponses, ma solution du même problème était d'ajouter ceci:
<div> </div>
. Donc, dans votre schéma, cela ressemblerait à ceci (plus ou moins), aucun changement de style n'était nécessaire dans mon cas:la source
à ajouter si la longueur de la cellule de gauche est inconnue?la source