Aligner le bouton en bas de div en utilisant CSS

105

Je veux aligner mon bouton dans le coin inférieur droit de mon div. Comment puis je faire ça?

entrez la description de l'image ici

CSS actuel de div:

    float: right;
    width: 83%;
    margin-right: 0px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    height:625px;
    overflow:auto;
Harry Joy
la source

Réponses:

224

Vous pouvez utiliser position:absolute;pour positionner de manière absolue un élément dans un div parent. Lors de l'utilisation, position:absolute;l'élément sera positionné absolument à partir du premier div parent positionné, s'il ne peut pas en trouver un, il se positionnera absolument à partir de la fenêtre, vous devrez donc vous assurer que le div de contenu est positionné.

Pour rendre le contenu div positionné, toutes les positionvaleurs qui ne sont pas statiques fonctionneront, mais relativec'est le plus simple car cela ne change pas le positionnement des divs par lui-même.

Donc, ajoutez position:relative;au contenu div, supprimez le flottant du bouton et ajoutez le css suivant au bouton:

position: absolute;
right:    0;
bottom:   0;
Kokos
la source
1
@Harry Joy: Avez-vous également appliqué position: relativeà l'élément qui contient votre formulaire + bouton?
thirtydot
1
@Harry Joy: Alors ça devrait être relatif à ça div, pas à la page. Si le pied de page est également contenu dans cela div, peut-être qu'ils semblent simplement être la même chose. Si vous connaissez la hauteur de votre pied de page, vous pouvez utiliser le bouton bottom: HEIGHT_OF_FOOTERpx.
thirtydot
1
@Harry Joy: Alors il y a trop de confusion ici. Vous devriez publier votre HTML / CSS comme cas de test jsFiddle .
thirtydot
1
@thirtydot: Ça marche. Thnx. a mal placé la position: relative. Ajouté dans une mauvaise div.
Harry Joy
3
Vraiment, je dois juste faire un commentaire et vraiment souligner à quel point je suis heureux d'avoir trouvé cette solution. Cela me dérange depuis des années!
K. Kilian Lindberg
31

La flexbox CSS3 peut également être utilisée pour aligner le bouton en bas de l'élément parent.

HTML requis:

<div class="container">
  <div class="btn-holder">
    <button type="button">Click</button>
  </div>
</div>

CSS nécessaire:

.container {
  justify-content: space-between;
  flex-direction: column;
  height: 100vh;
  display: flex;
}
.container .btn-holder {
  justify-content: flex-end;
  display: flex;
}

Capture d'écran:

Image de sortie

Ressources utiles:

Mohammad Usman
la source
12

Le conteneur parent doit avoir ceci:

position: relative;

Le bouton lui-même doit avoir ceci:

position: relative;
bottom: 20px;
right: 20px;

ou ce que tu aimes

Aron
la source
6
Notez que cette question a été posée il y a presque 3 ans et a obtenu une réponse.
Itay Gal
Notez que cette réponse est incorrecte. Avec position:relativele bouton sera déplacé de sa position d'origine au lieu de basé sur le parent.
Kokos le
1
Vous devez utiliser position: absolutepour cela en bas à droite.
CaptainBli
-25

Va vers la droite et peut être utilisé de la même manière pour la gauche

.yourComponent
{
   float: right;
   bottom: 0;
}
BehranG BinA
la source
3
Cela aligne uniquement votre bouton vers la droite. Pas en bas à droite.
Ruben