Szukaj…


Uwagi

Jest to stosowane, gdy wymiary elementu ( width i height ) nie są znane lub dynamiczne.

Wolisz używać Flexboksa niż wszystkich innych opcji, ponieważ jest on zoptymalizowany do projektowania interfejsu użytkownika.

Centrowanie z wyświetlaczem: stół

HTML:

<div class="wrapper">
    <div class="outer">
        <div class="inner">
            centered
        </div>
    </div>
</div>

CSS:

.wrapper {
  height: 600px;
  text-align: center;
}
.outer {
  display: table;
  height: 100%;
  width: 100%;
}
.outer .inner {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
}

Centrowanie za pomocą transformacji

HTML:

<div class="wrapper">
    <div class="centered">
        centered
    </div>
</div>

CSS:

.wrapper {
  position: relative;
  height: 600px;
}
.centered {
  position: absolute;
  z-index: 999;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
}

Centrowanie za pomocą Flexbox

HTML:

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

CSS:

.container {
  height: 500px;
  width: 500px;
  display: flex;              // Use Flexbox
  align-items: center;        // This centers children vertically in the parent.
  justify-content: center;    // This centers children horizontally.
  background: white;
}

.child {
  width: 100px;              
  height: 100px;
  background: blue;
}

Centrowanie tekstu za pomocą wysokości linii

HTML:

<div class="container">
    <span>vertically centered</span>
</div>

CSS:

.container{
    height: 50px;           /* set height */
    line-height: 50px;      /* set line-height equal to the height */
    vertical-align: middle; /* works without this rule, but it is good having it explicitly set */ 
}

Uwaga: Ta metoda spowoduje wyśrodkowanie tylko jednego wiersza tekstu w pionie. Nie wyśrodkuje bloków poprawnie, a jeśli tekst zostanie podzielony na nową linię, będziesz mieć dwie bardzo wysokie linie tekstu.

Centrowanie z pozycją: absolutne

HTML:

<div class="wrapper">
  <img src="http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">
</div>

CSS:

.wrapper{
   position:relative;
   height: 600px;
}
.wrapper img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

Jeśli chcesz wyśrodkować obrazy inne niż, musisz nadać temu elementowi wysokość i szerokość.

HTML:

<div class="wrapper">
  <div class="child">
     make me center
  </div>
</div>

CSS:

.wrapper{
   position:relative;
   height: 600px;
}
.wrapper .child {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 200px;
  height: 30px;
  border: 1px solid #f00;
}

Centrowanie z pseudoelementem

HTML:

<div class="wrapper">
  <div class="content"></div>
</div>

CSS:

.wrapper{
   min-height: 600px;
}

.wrapper:before{
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.content {
  display: inline-block;
  height: 80px;
  vertical-align: middle;
}

Metoda ta jest najlepiej stosować w przypadkach, gdy masz zróżnicowane wysokości .content wyśrodkowany wewnątrz .wrapper ; i chcesz .wrapper 's wysokość rozszerzyć gdy .content ' s wysokość przekracza .wrapper „s min-height.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow