Allinea il pulsante nella parte inferiore di div utilizzando CSS


105

Voglio allineare il mio pulsante nell'angolo in basso a destra del mio div. Come lo posso fare?

inserisci qui la descrizione dell'immagine

CSS corrente di div:

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

Risposte:


224

Puoi usare position:absolute;per posizionare in modo assoluto un elemento all'interno di un div genitore. Quando si utilizza position:absolute;l'elemento verrà posizionato assolutamente dal primo div genitore posizionato, se non riesce a trovarne uno si posizionerà assolutamente dalla finestra, quindi sarà necessario assicurarsi che il div del contenuto sia posizionato.

Per rendere il contenuto div posizionato, tutti i positionvalori che non sono statici funzioneranno, ma relativeè il più semplice poiché non modifica il posizionamento dei div da solo.

Quindi aggiungi position:relative;al contenuto div, rimuovi il float dal pulsante e aggiungi il seguente CSS al pulsante:

position: absolute;
right:    0;
bottom:   0;

1
@Harry Joy: ti sei applicato anche position: relativeall'elemento che contiene il tuo modulo + pulsante?
30 punti

1
@Harry Joy: Allora dovrebbe essere relativo a quello div, non alla pagina. Se anche il piè di pagina è contenuto in questo div, forse sembrano essere la stessa cosa. Se conosci l'altezza del tuo piè di pagina, sul pulsante puoi usare bottom: HEIGHT_OF_FOOTERpx.
30 punti

1
@Harry Joy: Allora c'è troppa confusione qui. Dovresti pubblicare il tuo HTML / CSS come test case jsFiddle .
30 punti

1
@thirtydot: ha funzionato. Thnx. posizione errata: relativa. Aggiunto nel div sbagliato.
Harry Joy

3
Davvero non mi resta che fare un commento e sottolineare quanto sono felice di aver trovato questa soluzione. Questo mi infastidisce da anni!
K. Kilian Lindberg

31

Flexbox CSS3 può essere utilizzato anche per allineare il pulsante nella parte inferiore dell'elemento genitore.

HTML richiesto:

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

CSS necessario:

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

Immagine dello schermo:

Immagine di output

Risorse utili:


12

Il contenitore principale deve avere questo:

position: relative;

Il pulsante stesso deve avere questo:

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

o quello che vuoi


6
Nota che questa domanda è stata posta quasi 3 anni fa e ha ottenuto una risposta.
Itay Gal

Nota che questa risposta non è corretta. Con position:relativeil pulsante verrà spostato dalla sua posizione originale invece che in base a quella genitore.
Kokos,

1
È necessario utilizzarlo position: absoluteper farlo dall'angolo in basso a destra.
CaptainBli

-26

Va a destra e può essere utilizzato allo stesso modo per la sinistra

.yourComponent
{
   float: right;
   bottom: 0;
}

3
Questo allinea solo il tuo pulsante a destra. Non in basso a destra.
Ruben
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.