Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Zusammenfassung: Verwenden Sie CSS, um das Element auf die vertikale Mitte einzustellen

巴扎黑
Freigeben: 2017-09-13 10:06:30
Original
1368 Leute haben es durchsucht

Als Front-End-Belagerungsingenieur bin ich beim Erstellen von Webseiten auf die horizontale und vertikale Zentrierung von CSS gestoßen, insbesondere die vertikale Zentrierung, die noch ärgerlicher ist Der Artikel stellt Ihnen hauptsächlich die Lösungen zur Verwendung von CSS zum Festlegen der vertikalen Zentrierung von Elementen vor. Mit diesen Methoden müssen Sie sich keine Sorgen machen.

Vorwort

Die vertikale Zentrierung von Elementen ist auch ein Problem, auf das wir in unserem täglichen Webseitenlayout häufig stoßen In Bezug auf die Lösung zur Verwendung von CSS zum Festlegen der vertikalen Zentrierung stellt der Artikel verschiedene Lösungen für verschiedene Situationen vor, die für Freunde, die auf dieses Problem stoßen, hilfreich sein werden Schauen wir uns die ausführliche Einführung an.

HTML-Code:


<p class="parent">
<p class="child">Text here</p>
</p>
Nach dem Login kopieren

Da Sie die vertikale Zentrierung des untergeordneten Elements festlegen, müssen Sie die Höhe kennen des übergeordneten Elements. Nur dann können Sie wissen, wo sich das sogenannte Zentrum befindet, oder? Wenn Sie in der Mitte einer Entfernung stehen möchten, müssen Sie zunächst wissen, wie lang die Entfernung ist Wo ist die Mitte?
Achten Sie darauf, dass alle prozentualen Höhen und Breiten auf Einstellungen wie html,body {width: 100%;height: 100%;} basieren. Wenn Sie es nicht so festlegen, ist das übergeordnete Element von p.parent, und Sie tun es nicht Wenn Sie die Breite und Höhe des Körpers nicht festlegen, können Sie den Effekt nicht sehen. Das Seitenverhältnis von .parent p ist relativ zu seinem übergeordneten Element, daher müssen Sie sicherstellen, dass die Breite und Höhe des übergeordneten Elements von . übergeordnete p werden bei der Verwendung festgelegt

(1) Inline-Text ist vertikal zentriert

CSS-Code:


.parent {
    height: 100px;
    border: 1px solid #ccc; /*设置border是为了方便查看效果*/
}
.child {
    line-height: 100px;
}
Nach dem Login kopieren

(2) Nichttext vertikal innerhalb der Zeile zentrieren (nehmen Sie img als Beispiel)

HTML-Code:


<p class="parent">
    <img src="image.png" alt="" />
</p>
Nach dem Login kopieren

CSS-Code


.parent {
    height: 100px;
    border: 1px solid #ccc; /*设置border是为了方便查看效果*/
}
.parent img {
    //注意此时应该保证图片自身的高度或者你设置的高度小于父元素的200px的行高,不然你看不出来居中的效果.
    line-height: 100px;
}
Nach dem Login kopieren

(3) Elemente auf Blockebene unbekannter Höhe sind vertikal zentriert

HTML-Code:


<p class="parent">
  <p class="child">
    <!--.child的高度未知,父元素要有高度-->
    sddvsds dfvsdvds
  </p>
</p>
Nach dem Login kopieren

Die erste Methode (kein Auffüllen erforderlich):

CSS-Code:


.parent {
  width: 100%;
  height: 100%;
  position: relative;
  /*display: table;*/
}
.child {
  width: 500px;
  border: 1px solid #ccc; /*设置border是为了方便查看效果*/
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
Nach dem Login kopieren

Zweite Methode (ohne Transformation):

CSS-Code:


.parent {
    position: relative;
    width: 100%;
    height: 100%;
}
.child {
  width: 500px;
  border: 1px solid #ccc;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  margin: auto;
}
Nach dem Login kopieren

Die dritte Methode ( erfordert Auffüllen):

CSS-Code:


#parent {
  padding: 5% 0;
}
#child {
  padding: 10% 0;
}
Nach dem Login kopieren

Vierte Methode:

(verwenden Sie display: table, diese Methode eignet sich auch zum Zentrieren von Inline-Textelementen):

CSS-Code:


.parent {
  width: 100%;
  height: 100%;
  display: table;
}
.child {
  display: table-cell;
  vertical-align: middle;
}
Nach dem Login kopieren

Die fünfte Methode (Flex-Layout, Kompatibilität muss hier berücksichtigt werden!)

CSS-Code:


.parent {
    width: 100%;
    height: 100%; /*这里一定要写高度奥!*/
    display: flex;
    align-items: center;
    justify-content: center;
  }
Nach dem Login kopieren

(4) Elemente auf Blockebene mit bekannten Höhen werden vertikal zentriert

HTML-Code:


<p class="parent">
  <p class="child">
    <!--.child的高度已知,父元素高度已知-->
    sddvsds dfvsdvds
  </p>
</p>
Nach dem Login kopieren

CSS-Code :


#parent {
  height: 300px;
}
#child {
  height: 40px;
  margin-top: 130px; /*这个只为父元素的高度减去这个元素的高度除以二计算得到的*/
  border: 1px solid #ccc;
}
Nach dem Login kopieren

Die oben genannten sind einige der praktikablen Methoden, die ich entdeckt und persönlich getestet habe andere Methoden

Das obige ist der detaillierte Inhalt vonZusammenfassung: Verwenden Sie CSS, um das Element auf die vertikale Mitte einzustellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!