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.