J'en ai div
avec quelques enfants:
<div class="content">
<h1>heading 1</h1>
<h2>heading 2</h2>
<p>Some more or less text</p>
<a href="/" class="button">Click me</a>
</div>
et je veux la mise en page suivante:
-------------------
|heading 1 |
|heading 2 |
|paragraph text |
|can have many |
|rows |
| |
| |
| |
|link-button |
-------------------
Indépendamment de la quantité de texte dans le p
je veux coller le .button
toujours en bas sans le retirer du flux. J'ai entendu dire que cela peut être réalisable avec Flexbox mais je ne peux pas le faire fonctionner.
postition: absolute; bottom 0;
?position:relative
- c'est loufoque parce que je pense que c'est relatif par défaut mais vous l'avez SET pour que le positionnement absolu de l'enfant soit contenu. Puisbottom:0
s'affleurer.static
pasrelative
.Réponses:
Vous pouvez utiliser les marges automatiques
Vous pouvez donc utiliser l'un d'eux (ou les deux):
Afficher l'extrait de code
Alternativement, vous pouvez créer l'élément avant la
a
croissance pour remplir l'espace disponible:Afficher l'extrait de code
la source
html { height: 100%; } body { min-height: 100%; display: flex; flex-direction: column; } #site-content { flex: 1; }
height: 100%
de l'élément parent dont vous essayez de pousser quelque chose vers le bas avecmargin-top: auto;
Vous pouvez utiliser display: flex pour positionner un élément vers le bas, mais je ne pense pas que vous souhaitiez utiliser flex dans ce cas, car cela affectera tous vos éléments.
Pour positionner un élément vers le bas à l'aide de flex, essayez ceci:
Votre meilleur pari est de définir la position: absolue par rapport au bouton et de le définir
bottom: 0
, ou vous pouvez placer le bouton à l'extérieur du conteneur et utiliser un négatiftransform: translateY(-100%)
pour le mettre dans le conteneur comme ceci:Vérifiez ce JSFiddle
la source
La solution avec
align-self: flex-end;
n'a pas fonctionné pour moi mais celle-ci l'a fait au cas où vous voudriez utiliser flex:Résultat
Code
Remarque: Lorsque vous "exécutez l'extrait de code", vous devez faire défiler vers le bas pour voir le lien en bas.
la source
Vous n'êtes pas sûr de Flexbox, mais vous pouvez le faire en utilisant la propriété position.
définir l'
div
position: relative
élément parent et enfant qui pourrait être un<p>
ou<h1>
etc. définirposition: absolute
etbottom: 0
.Exemple:
index.html
style.css
Code stylo ici.
la source
position:fixed
ne fonctionnerait pas car alors il ne serait pas par rapport au récipient est. Peut - être que vous vouliez direposition:absolute
?Démo: https://codepen.io/ferittuncer/pen/YzygpWX
la source
Lorsque vous réglez votre affichage sur Flex , vous pouvez simplement utiliser la
flex
propriété pour marquer quel contenu peut s'agrandir et quel contenu ne peut pas.Propriété Flex
la source
Essaye ça
la source
Je viens de trouver une solution à cela.
pour ceux qui ne sont pas satisfaits des réponses données, essayez cette approche avec flexbox
CSS
HTML
la source