Wyrównaj przycisk na dole div za pomocą CSS

105

Chcę wyrównać mój przycisk w prawym dolnym rogu mojego elementu div. Jak mogę to zrobić?

wprowadź opis obrazu tutaj

Aktualny css div:

    float: right;
    width: 83%;
    margin-right: 0px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    height:625px;
    overflow:auto;
Harry Joy
źródło

Odpowiedzi:

224

Możesz użyć position:absolute;do absolutnego pozycjonowania elementu w nadrzędnym div. Podczas używania position:absolute;element zostanie umieszczony absolutnie od pierwszego umieszczonego nadrzędnego elementu DIV, jeśli nie może go znaleźć, zostanie umieszczony całkowicie z poziomu okna, więc musisz upewnić się, że element div zawartości jest ustawiony.

Aby ustawić element DIV w treści, wszystkie positionwartości, które nie są statyczne, będą działać, ale relativejest najłatwiejsze, ponieważ nie zmienia samego położenia elementów div.

Więc dodaj position:relative;do treści div, usuń float z przycisku i dodaj następujący css do przycisku:

position: absolute;
right:    0;
bottom:   0;
Kokos
źródło
1
@Harry Joy: Czy zastosowałeś również position: relativedo elementu, który zawiera formularz + przycisk?
thirtydot
1
@Harry Joy: W takim razie powinno odnosić się do tego div, a nie do strony. Jeśli stopka jest również zawarta w tym div, może po prostu wydają się być tym samym. Jeśli znasz wysokość swojej stopki, na przycisku możesz użyć bottom: HEIGHT_OF_FOOTERpx.
trzydzieści kropek
1
@Harry Joy: Zatem jest tu zbyt wiele zamieszania. Powinieneś opublikować swój HTML / CSS jako przypadek testowy jsFiddle .
trzydzieści kropek
1
@thirtydot: Działa. Thnx. niewłaściwie umieszczona pozycja: względna. Dodałem go w złym div.
Harry Joy
3
Naprawdę muszę tylko skomentować i naprawdę podkreślić, jak bardzo się cieszę, że znalazłem to rozwiązanie. Wkurza mnie to od lat!
K. Kilian Lindberg
31

Flexbox CSS3 może być również użyty do wyrównania przycisku na dole elementu nadrzędnego.

Wymagany kod HTML:

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

Niezbędny CSS:

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

Zrzut ekranu:

Obraz wyjściowy

Przydatne zasoby:

Mohammad Usman
źródło
12

Kontener nadrzędny musi mieć to:

position: relative;

Sam przycisk musi mieć to:

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

lub cokolwiek chcesz

Aron
źródło
6
Zwróć uwagę, że to pytanie zostało zadane prawie 3 lata temu i otrzymałem odpowiedź.
Itay Gal
Zauważ, że ta odpowiedź jest nieprawidłowa. Za position:relativepomocą przycisku zostanie przeniesiony z pierwotnej pozycji zamiast na podstawie rodzica.
Kokos
1
Musisz użyć position: absolute, aby to zrobić od prawego dolnego rogu.
CaptainBli
-25

Przechodzi w prawo i może być używany w ten sam sposób po lewej stronie

.yourComponent
{
   float: right;
   bottom: 0;
}
BehranG BinA
źródło
3
Spowoduje to tylko wyrównanie przycisku w prawo. Nie w prawym dolnym rogu.
Ruben,