Dans une page Bootstrap responsive comment centrer une div

position a div at centre of a responsive page

j'ai besoin de créer une page responsive en utilisant bootstrap par position une div au centre d'une page comme dans la mise en page mentionnée ci-dessous.

103
demandé sur phpsmashcode 2013-11-22 14:30:36

9 réponses

mise à jour pour Bootstrap 4

alignement plus simple de la grille verticale avec flex-box

@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>

Solution pour 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>

c'est un exemple simple d'un div horizontalement et verticalement centré dans toutes les tailles d'écran.

143
répondu ppollono 2017-10-30 12:49:19

CSS:

html,
body {
    height: 100%;
}

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

HTML:

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

exemple de violon

29
répondu vocasle 2017-01-25 18:02:09

mise à jour pour Bootstrap 4

maintenant que Bootstrap 4 est flexbox, l'alignement vertical est plus facile. Avec une Flexbox div pleine hauteur, juste us my-auto pour les marges supérieures et inférieures...

<div class="container h-100 d-flex justify-content-center">
    <div class="jumbotron my-auto">
      <h1 class="display-3">Hello, world!</h1>
    </div>
</div>

http://codeply.com/go/ayraB3tjSd/bootstrap-4-vertical-center


centre Vertical dans Bootstrap 4

7
répondu Zim 2017-08-23 12:35:51

In bootstrap 4

à centrer les enfants horizontalement , utiliser bootstrap-4 classe

justify-content-center

à centrer les enfants verticalement , utiliser bootstrap-4 classe

 align-items-center

mais n'oubliez pas d'utiliser la classe d-flex avec ces c'est une classe utilitaire bootstrap-4, comme so

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

Note: assurez-vous d'ajouter des utilitaires bootstrap-4 si ce code ne fonctionne pas

4
répondu 2018-02-02 10:29:32

sans table d'affichage et sans bootstrap, je préférerais faire que

<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

3
répondu Matoeil 2016-11-17 14:16:14

bonne réponse ppollono. J'étais juste en train de jouer et j'ai eu une meilleure solution. La CSS resterait la même, c'est-à-dire :

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

mais pour HTML:

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

Ce serait suffisant.

1
répondu simranjazz 2014-08-14 10:15:53

je pense que la façon la plus simple d'accomplir la disposition avec bootstrap est comme ceci:

<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>

tout ce que j'ai fait était d'ajouter des couches de divs qui m'ont permis de centrer le div, mais puisque je n'utilise pas de pourcentages, vous devez spécifier la largeur maximale du div pour être centre.

Vous pouvez utiliser cette même méthode pour centrer sur plusieurs colonnes, vous avez juste besoin d'ajouter plus de div couches:

<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>

Note: que j'ai ajouté un div avec la colonne 12 pour md, sm et xs, si vous ne le faites pas le premier div avec la couleur de fond (dans ce cas "blueviolet") va s'effondrer, vous serez en mesure de voir les divs enfants, mais pas la couleur de fond.

0
répondu TheOneAndOnly ME 2017-07-24 16:05:22

Voici des règles CSS simples qui mettent n'importe quel div dans le centre

.centered {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

https://css-tricks.com/quick-css-trick-how-to-center-an-object-exactly-in-the-center /

-1
répondu Sravan 2015-04-20 10:34:11

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;
}
-2
répondu rbsthlm 2013-11-26 20:42:43