In una pagina reattiva bootstrap come centrare un div


132

posiziona un div al centro di una pagina reattiva

Ho bisogno di creare una pagina reattiva usando bootstrap posizionando un div al centro di una pagina come nel layout sotto indicato.



ho bisogno di centrare un div con il testo (Design reattivo usando bootstrap) che dovrebbe essere presente all'interno di un altro div centrato a larghezza intera col-lg-12 come nel layout.it sarebbe utile se riesco a ottenere il codice di esempio nel violino
Rama Priya,

Risposte:


173

AGGIORNAMENTO per Bootstrap 4

Allineamento della griglia verticale più semplice con la scatola flessibile

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css');
html,
body {
  height: 100%
}
<div class="h-100 row align-items-center">
  <div class="col" style="background:red">
    TEXT
  </div>
</div>

Soluzione per Bootstrap 3

@import url('http://getbootstrap.com/dist/css/bootstrap.css');
 html, body, .container-table {
    height: 100%;
}
.container-table {
    display: table;
}
.vertical-center-row {
    display: table-cell;
    vertical-align: middle;
}
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.0/bootstrap.min.js"></script>

<div class="container container-table">
    <div class="row vertical-center-row">
        <div class="text-center col-md-4 col-md-offset-4" style="background:red">TEXT</div>
    </div>
</div>

È un semplice esempio di un div centrato orizzontalmente e verticalmente in tutte le dimensioni dello schermo.


41
Forse class="col-xs-4 col-xs-offset-4"potrebbe essere abbastanza.
L105,

Devo posizionare il div col-lg-12 in verticale al centro in tutte le dimensioni dello schermo
Rama Priya,

1
Ho trovato la soluzione per te controlla questo violino jsfiddle.net/Palapas/52VtD/687 il contenitore deve avere altezza 100% altrimenti devi usare la posizione assoluta
ppollono

45

CSS:

html,
body {
    height: 100%;
}

.container {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

HTML:

<div class="container">
  <div>
    example
  </div>
</div>

Esempio di violino


1
questa soluzione non funziona quando apro il mio sito sul cellulare.
codeinprogress

2
Ciao, quale browser stavi utilizzando? Hai caricato i fogli di stile e javascript di Bootstrap? Funziona in Firefox e Chrome. Testato su tutte le dimensioni dello schermo.
vocasle

Ho provato questo ridimensionando il mio browser e utilizzando un controllo del sito Web reattivo. Per me va bene.
Rocky Kev,

1
questa correzione sta rompendo gli stili predefiniti di bootstrap
ppollono

21

Nel bootstrap 4

per centrare i bambini in orizzontale , utilizzare la classe bootstrap-4

justify-content-center

per centrare verticalmente i bambini , utilizzare la classe bootstrap-4

 align-items-center

ma ricorda di non dimenticare di usare la classe d-flex con queste è una classe di utilità bootstrap-4, in questo modo

<div class="d-flex justify-content-center align-items-center" style="height:100px;">
    <div class="bg-primary">MIDDLE</div>    
</div>

Nota: assicurarsi di aggiungere utilità bootstrap-4 se questo codice non funziona



5

Non è necessario modificare nulla nei CSS, puoi scriverlo direttamente in classe e otterrai il risultato.

<div class="col-lg-4 col-md-4 col-sm-4 container justify-content-center">
  <div class="col" style="background:red">
    TEXT
  </div>
</div>

inserisci qui la descrizione dell'immagine


4

senza tabella di visualizzazione e senza bootstrap, preferirei farlo

<div class="container container-table">
    <div class="row vertical-center-row">
        <div class="text-center col-md-4 col-md-offset-4" style="background:red">TEXT</div>
    </div>
</div>


 html, body, .container-table {
    height: 100%;
}
.container-table {
    width:100vw;
  height:150px;
  border:1px solid black;
}
.vertical-center-row {
   margin:auto;
  width:30%;
  padding:63px;
  text-align:center;

}

http://codepen.io/matoeil/pen/PbbWgQ


2

Buona risposta ppollono. Stavo solo giocando e ho ottenuto una soluzione leggermente migliore. Il CSS rimarrebbe lo stesso, cioè:

html, body, .container {
    height: 100%;
}
.container {
    display: table;
    vertical-align: middle;
}
.vertical-center-row {
    display: table-cell;
    vertical-align: middle;
}

Ma per HTML:

<div class="container">
    <div class="vertical-center-row">
        <div align="center">TEXT</div>
    </div>
</div>

Questo sarebbe abbastanza.


2

Non è il modo migliore, ma funzionerà comunque

<div class="container-fluid h-100">
<div class="row h-100">
<div class="col-lg-12"></div>
<div class="col-lg-12">
<div class="row h-100">
  <div class="col-lg-4"></div>
  <div class="col-lg-4 border">
    This div is in middle
  </div>
  <div class="col-lg-4"></div>
</div>

</div>
<div class="col-lg-12"></div>
</div>

</div>

1

Penso che il modo più semplice per realizzare il layout con bootstrap sia così:

<section>
<div class="container">
    <div class="row">
        <div align="center">
            <div style="max-width: 200px; background-color: blueviolet;">
                <div>
                    <h1 style="color: white;">Content goes here</h1>
                </div>
            </div>
        </div>
    </div>
</div>

tutto quello che ho fatto è stato aggiungere strati di div che mi permettessero di centrare il div, ma poiché non sto usando le percentuali, devi specificare la larghezza massima del div come centro.

Puoi usare questo stesso metodo per centrare più di una colonna, devi solo aggiungere più div layer:

<div class="container">
    <div class="row">
        <div align="center">
            <div style="max-width: 400px; background-color: blueviolet;">
                <div class="col-md-12 col-sm-12 col-xs-12" style="background-color: blueviolet;">
                    <div class="col-md-8 col-sm-8 col-xs-12" style="background-color: darkcyan;">
                        <h1 style="color: white;">Some content</h1>
                    </div>
                    <div class="col-md-4 col-sm-4 col-xs-12" style="background-color: blue;">
                        <p style="color: white;">More content</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

Nota: che ho aggiunto un div con la colonna 12 per md, sm e xs, se non lo fai il primo div con il colore di sfondo (in questo caso "blueviolet") collasserà, sarai in grado di vedere i div figlio , ma non il colore di sfondo.


1

Per la versione effettiva di Bootstrap 4.3.1 utilizzare

Stile

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<style type="text/css">
html, body {
    height: 100%;
}
</style>

Codice

<div class="h-100 d-flex justify-content-center">
<div class="jumbotron my-auto">
<!-- example content -->
<div class="alert alert-success" role="alert">
<h4 class="alert-heading">Title</h4>
<p>Desc</p>
</div>
<!-- ./example content -->
</div>
</div

1

Prova questo, ad esempio, ho usato un'altezza fissa. Penso che non influisca sullo scenario reattivo.

<html lang="en">
<head>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
    <div class="d-flex justify-content-center align-items-center bg-secondary w-100" style="height: 300px;">
        <div class="bg-primary" style="width: 200px; height: 50px;"></div>
    </div>
</body>
</html>


1

In Bootstrap 4, utilizzare:

<div class="d-flex justify-content-center">...</div>

Puoi anche cambiare la posizione in base a ciò che desideri:

<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>

Riferimento qui



-1

La soluzione più semplice sarà l'aggiunta di una colonna vuota su entrambi i lati come di seguito:

  <div class="row form-group">

    <div class="col-3"></div>

    <ul class="list-group col-6">
      <li class="list-group-item active">Yuvraj Patil</li>
    </ul>

    <div class="col-3"></div>
  </div>

-2

jsFiddle

HTML :

<div class="container" id="parent">
  <div class="row">
    <div class="col-lg-12">text
      <div class="row ">
        <div class="col-md-4 col-md-offset-4" id="child">TEXT</div>
      </div>
    </div>
  </div>
</div>

CSS :

#parent {    
    text-align: center;
}
#child {
    margin: 0 auto;
    display: inline-block;
    background: red;
    color: white;
}
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.