Je cherche un moyen de centrer verticalement le container
div à l'intérieur dujumbotron
et de le placer au milieu de la page.
Le .jumbotron
doit être adapté à toute la hauteur et la largeur de l'écran. Le .container
div a une largeur de1025px
et doit être au milieu de la page (verticalement au centre).
Je veux que cette page ait le jumbotron adapté à la hauteur et à la largeur de l'écran avec le conteneur verticalement centré sur le jumbotron. Comment puis-je y parvenir?
.jumbotron {
height:100%;
width:100%;
}
.container {
width:1025px;
}
.jumbotron .container {
max-width: 100%;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="jumbotron">
<div class="container text-center">
<h1>The easiest and powerful way</h1>
<div class="row">
<div class="col-md-7">
<div class="top-bg"></div>
</div>
<div class="col-md-5 iPhone-features" style="margin-left:-25px;">
<ul class="top-features">
<li>
<span><i class="fa fa-random simple_bg top-features-bg"></i></span>
<p><strong>Redirect</strong><br>Visitors where they converts more.</p>
</li>
<li>
<span><i class="fa fa-cogs simple_bg top-features-bg"></i></span>
<p><strong>Track</strong><br>Views, Clicks and Conversions.</p>
</li>
<li>
<span><i class="fa fa-check simple_bg top-features-bg"></i></span>
<p><strong>Check</strong><br>Constantly the status of your links.</p>
</li>
<li>
<span><i class="fa fa-users simple_bg top-features-bg"></i></span>
<p><strong>Collaborate</strong><br>With Customers, Partners and Co-Workers.</p>
</li>
<a href="pricing-and-signup.html" class="btn-primary btn h2 lightBlue get-Started-btn">GET STARTED</a>
<h6 class="get-Started-sub-btn">FREE VERSION AVAILABLE!</h6>
</ul>
</div>
</div>
</div>
</div>
Réponses:
La manière de boîte flexible
L'alignement vertical est désormais très simple grâce à l'utilisation de la disposition de boîte flexible . De nos jours, cette méthode est prise en charge dans un large éventail de navigateurs Web, à l'exception d'Internet Explorer 8 et 9. Par conséquent, nous aurions besoin d'utiliser des hacks / polyfills ou différentes approches pour IE8 / 9.
Dans ce qui suit, je vais vous montrer comment faire cela en seulement 3 lignes de texte (quelle que soit l'ancienne syntaxe flexbox) .
Remarque: il est préférable d'utiliser une classe supplémentaire au lieu de la modifier
.jumbotron
pour obtenir l'alignement vertical. J'utiliserais levertical-center
nom de classe par exemple.Exemple ici (un miroir sur jsbin) .
Important notes (Considéré comme dans la démo) :
Un pourcentage des valeurs
height
ou desmin-height
propriétés est relatif à l'height
élément parent, vous devez donc spécifierheight
explicitement le parent.La syntaxe Flexbox préfixée / ancienne du fournisseur a été omise dans l'extrait publié en raison de la brièveté, mais existe dans l'exemple en ligne.
Dans certains des anciens navigateurs tels que Firefox 9 (dans lequel je l' ai testé) , le conteneur flexible -
.vertical-center
dans ce cas - ne prendra pas l'espace disponible à l' intérieur du parent, il faut donc préciser lawidth
propriété comme:width: 100%
.Dans certains navigateurs Web, comme mentionné ci-dessus, l'élément flexible -
.container
dans ce cas - peut ne pas apparaître horizontalement au centre. Il semble que le APPLIED gauche / droitemargin
deauto
ne pas d'effet sur l'élément flexible.Par conséquent, nous devons l'aligner sur
box-pack / justify-content
.Pour plus de détails et / ou l'alignement vertical des colonnes, vous pouvez vous référer au sujet ci-dessous:
La manière traditionnelle pour les navigateurs Web hérités
C'est l'ancienne réponse que j'ai écrite au moment où j'ai répondu à cette question. Cette méthode a été discutée ici et elle est censée fonctionner également dans Internet Explorer 8 et 9. Je vais l'expliquer en bref:
Dans le flux en ligne, un élément de niveau en ligne peut être aligné verticalement au milieu par
vertical-align: middle
déclaration. Spécifications du W3C :Dans les cas où le parent - l'
.vertical-center
élément dans ce cas - a un expliciteheight
, par hasard si nous pouvions avoir un élément enfant ayant exactement la même chose queheight
le parent, nous serions en mesure de déplacer la ligne de base du parent au milieu du plein -hauteur enfant et étonnamment faire de notre enfant entrant souhaité - le.container
- aligné verticalement au centre.Se rassembler
Cela étant dit, nous pourrions créer un élément pleine hauteur dans les éléments
.vertical-center
by::before
ou::after
pseudo et également changer ledisplay
type par défaut de celui-ci et de l'autre enfant, le.container
toinline-block
.Utilisez ensuite
vertical-align: middle;
pour aligner les éléments en ligne verticalement.Voici:
DÉMO DE TRAVAIL .
De plus, pour éviter des problèmes inattendus dans de très petits écrans, vous pouvez réinitialiser la hauteur du pseudo-élément sur
auto
ou0
ou changer sondisplay
type ennone
si nécessaire afin:DÉMO À JOUR
Et encore une chose:
S'il y a des
footer
/header
sections autour du conteneur, il est préférable de positionner ces éléments correctement (relative
,absolute
? À vous.) Et d'ajouter unez-index
valeur plus élevée (pour l'assurance) pour les garder toujours au-dessus des autres.la source
display: flex
à un.container
, cela fait.row
basculer l'enfant . Il semble que la méthode de la flexbox nous obligerait donc à renoncer à utiliser certaines des principales fonctionnalités de bootstrap?Mise à jour 2019
Bootstrap 4 inclut Flexbox, donc la méthode de centrage vertical est beaucoup plus facile et ne nécessite pas de CSS supplémentaire .
Utilisez simplement les classes utilitaires
d-flex
etalign-items-center
.http://www.codeply.com/go/ui6ABmMTLv
Important: le centrage vertical est relatif à la hauteur . Le conteneur parent des éléments que vous essayez de centrer doit avoir une hauteur définie . Si vous voulez utiliser la hauteur de la page
vh-100
oumin-vh-100
sur le parent! Par exemple:Voir aussi: Vertical Align Center dans Bootstrap 4
la source
ajoutez Bootstrap.css puis ajoutez ceci à votre css
la source
Dans Bootstrap 4 :
pour centrer l'enfant horizontalement , utilisez la classe bootstrap-4:
pour centrer l'enfant verticalement , utilisez la classe bootstrap-4:
mais rappelez-vous n'oubliez pas d'utiliser la classe d-flex avec ceux-ci, c'est une classe utilitaire bootstrap-4, comme ça
Remarque: assurez-vous d'ajouter des utilitaires bootstrap-4 si ce code ne fonctionne pas
Je sais que ce n'est pas la réponse directe à cette question, mais cela peut aider quelqu'un
la source
Ma technique préférée:
Démo
Voir aussi ce violon !
la source
Testé dans IE, Firefox et Chrome.
Trouvé sur https://css-tricks.com/centering-css-complete-guide/
la source
pour bootstrap4 centre vertical de quelques articles
d-flex pour les règles flex
colonne flexible pour la direction verticale sur les articles
centre de contenu de justification pour le centrage
style = 'height: 300px;' doit avoir pour les points de consigne où le centre doit être calculé ou utiliser la classe h-100
puis pour le centre horizontal div d-flex justifier-contenu-centre et un certain conteneur
nous avons donc une hiérarchie de 3 balises: div-column -> div-row -> div-container
la source
Si vous utilisez Bootstrap 4, il vous suffit d'ajouter 2 divs:
Les classes: d-table, d-table-cell, w-100, h-100 et align-middle feront l'affaire
la source
Donnez la classe de conteneur
Donnez le div qui est à l'intérieur du conteneur:
Tout le contenu de cette div apparaîtra au milieu de la page.
la source
Voici la façon dont j'utilise pour aligner le contenu verticalement - haut / centre / bas avec bootstrap 3 lignes. Bootstrap 3 colonnes de même hauteur et alignées verticalement.
Voici une démo JSFiddle .
la source