Heim Web-Frontend CSS-Tutorial Was sind die CSS-Layouts? Gängige CSS-Layoutmethoden (mit Code)

Was sind die CSS-Layouts? Gängige CSS-Layoutmethoden (mit Code)

Aug 07, 2018 pm 05:23 PM
css css3 html html5

Was sind die CSS-Layouts? Das CSS-Layout kann dafür sorgen, dass die Seite schöner und aufgeräumter aussieht. Der folgende Artikel fasst einige gängige Layoutmethoden in CSS zusammen. Schauen wir uns dies im Detail an.

Horizontal zentriertes Layout

1. Rand + feste Breite

<div>
  <div>Demo</div>
</div>

<style>
  .child {
    width: 50px;
    margin: 0 auto;
  }
</style>
Nach dem Login kopieren

Ausführen Ergebnis:

Was sind die CSS-Layouts? Gängige CSS-Layoutmethoden (mit Code)

Sie müssen es am vorderen Ende gesehen haben. Diese feste Breite ist horizontal zentriert. Wir können auch Folgendes verwenden, um eine variable Breite zu erreichen

2. Tabelle + Rand

<div>
  <div>Demo</div>
</div>

<style>
  .child {
    display: table;
    margin: 0 auto;
  }
</style>
Nach dem Login kopieren

Laufergebnis:

Was sind die CSS-Layouts? Gängige CSS-Layoutmethoden (mit Code)

Anzeige: Tabelle ähnelt in der Leistung dem Blockelement, aber das width ist die Breite des Inhalts.

Es ist nicht erforderlich, den übergeordneten Elementstil festzulegen (unterstützt IE 8 und höher). Kompatibel mit IE 8. Die folgenden Versionen müssen an

angepasst werden.

3. block + text-align

<div>
  <div>Demo</div>
</div>

<style>
  .child {
    display: inline-block;
  }
  .parent {
    text-align: center;
  }
</style>
Nach dem Login kopieren

Gute Kompatibilität (sogar kompatibel mit IE 6 und IE 7)

4. absolut + margin-left

<div>
  <div>Demo</div>
</div>

<style>
.parent {
    position: relative;
  }
  .child {
    position: absolute;
    left: 50%;
    width: 100px;
    margin-left: -50px;  /* width/2 */
  }
  </style>
Nach dem Login kopieren

Breite fest

hat eine bessere Kompatibilität als die Verwendung von Transformation

5. Absolut + Transformation

<div>
  <div>Demo</div>
</div>

<style>
  .parent {
    position: relative;
  }
  .child {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
</style>
Nach dem Login kopieren

Absolute Positionierung bricht nicht vom Dokument ab Fluss. Beeinflusst das Layout nachfolgender Elemente.

transform ist ein CSS3-Attribut und weist Kompatibilitätsprobleme auf

6.

<div>
  <div>Demo</div>
</div>

<style>
  .parent {
    display: flex;
    justify-content: center;
  }
</style>
Nach dem Login kopieren
Sie müssen nur das übergeordnete Knotenattribut festlegen , es muss nicht festgelegt werden. Untergeordnetes Element

flex hat Kompatibilitätsprobleme

vertikale Zentrierung:

1. table-cell + Vertical -align

<div>
  <div>Demo</div>
</div>

<style>
  .parent {
    display: table-cell;
    vertical-align: middle;
  }
</style>
Nach dem Login kopieren
Gute Kompatibilität (Versionen unter IE 8 müssen die Seitenstruktur an die Tabelle anpassen

2, absolute + transform

Leistungsstarkes Absolut ist für dieses kleine Problem natürlich sehr einfach

<div>
  <div>Demo</div>
</div>

<style>
  .parent {
    position: relative;
  }
  .child {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
</style>
Nach dem Login kopieren

Absolute Positionierung erfolgt außerhalb des Dokumentflusses und hat keinen Einfluss auf das Layout nachfolgender Elemente Als einziges Element geht auch das übergeordnete Element verloren.

Die horizontale Zentrierung kann auch mit der horizontalen Zentrierung erreicht werden.


3. Flex + Align-Items

Wenn Absolut mächtig ist, dann ist Flex nur ein Witz, weil es am stärksten ist. Aber es gibt Kompatibilitätsprobleme.

Horizontale und vertikale Zentrierung:

1. absolut + transformieren

<div>
  <div>Demo</div>
</div>

<style>
  .parent {
    display: flex;
    align-items: center;
  }
</style>
Nach dem Login kopieren

Absolute Positionierung unterbricht den Dokumentenfluss und hat keinen Einfluss auf das Layout nachfolgender Elemente. transform ist ein CSS3-Attribut und weist Kompatibilitätsprobleme auf.

2 -align

<div>
  <div>Demo</div>
</div>

<style>
  .parent {
    position: relative;
  }
  .child {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
</style>
Nach dem Login kopieren

Gute Kompatibilität

3. Flex + justify-content + align-items

<div>
  <div>Demo</div>
</div>

<style>
  .parent {
    text-align: center;
    display: table-cell;
    vertical-align: middle;
  }
  .child {
    display: inline-block;
  }
</style>
Nach dem Login kopieren

Sie müssen nur die festlegen Attribute des übergeordneten Knotens, keine Notwendigkeit, die untergeordneten Elemente festzulegenSchmerzhafte Kompatibilitätsprobleme

Eine Spalte hat eine feste Breite und eine Spalte ist adaptiv

1. float + margin

<div>
  <div>Demo</div>
</div>

<style>
  .parent {
    display: flex;
    justify-content: center; /* 水平居中 */
    align-items: center; /*垂直居中*/
  }
</style>
Nach dem Login kopieren

<span style="font-family: Microsoft YaHei, Microsoft YaHei;">Es wird ein 3-Pixel geben FEHLER in IE 6. Die Lösung kann margin-left zu .left:- 3px hinzugefügt werden. Natürlich gibt es auch Lösungen, um diesen kleinen Fehler wie folgt zu beheben: <strong></strong></span>

<div>
  <div>
    <p>left</p>
  </div>
  <div>
    <p>right</p>
    <p>right</p>
  </div>
</div>

<style>
  .left {
    float: left;
    width: 100px;
  }
  .right {
    margin-left: 100px
    /*间距可再加入 margin-left */
  }
</style>
Nach dem Login kopieren
Diese Methode wird den 3-Pixel-BUG in IE 6 nicht haben, aber .left kann nicht ausgewählt werden und .left {position muss festgelegt werden: relativ}, um den Pegel zu erhöhen. Beachten Sie, dass diese Methode dem HTML-Text unnötige Struktur hinzufügt.

Arrogante Programmierer sollten Browser mit zu niedriger Version aufgeben<span style="font-family: 微软雅黑, Microsoft YaHei;">IE 6 中会有3像素的 BUG,解决方法可以在 .left 加入 margin-left:-3px 当然也有解决这个小bug的方案如下:</span>

2. float + overflow

<div>
  <div>
    <p>left</p>
  </div>
  <div>
    <div>
      <p>right</p>
      <p>right</p>
    </div>
  </div>
</div>

<style>
  .left {
    float: left;
    width: 100px;
  }
  .right-fix {
    float: right;
    width: 100%;
    margin-left: -100px;
  }
  .right {
    margin-left: 100px
    /*间距可再加入 margin-left */
  }
</style>
Nach dem Login kopieren

Einstellen von Überlauf: Ausgeblendet löst den BFC-Modus (Block Formatting Context) aus ) Formatierungskontext auf Blockebene. Was ist BFC? Laienhaft ausgedrückt: Ganz gleich, was Sie innerhalb von BFC tun, die Außenwelt wird dadurch nicht beeinträchtigt. Diese Methode hat einen einfachen Stil, unterstützt jedoch nicht IE 6

3. Die Anzeigeeigenschaften der Tabelle

<div>
  <div>
    <p>left</p>
  </div>
  <div>
    <p>right</p>
    <p>right</p>
  </div>
</div>

<style>
  .left {
    float: left;
    width: 100px;
  }
  .right {
    overflow: hidden;
  }
</style>
Nach dem Login kopieren

Tabelle sind die Zellenbreite jeder Spalte und müssen gleich sein zur Tischbreite. Tabellenlayout: Fixed kann das Rendern beschleunigen und auch die Layout-Priorität festlegen. Der Rand kann nicht in der Tabellenzelle festgelegt werden, aber der Abstand kann durch Auffüllen eingestellt werden

4. Flex

<div>
  <div>
    <p>left</p>
  </div>
  <div>
    <p>right</p>
    <p>right</p>
  </div>
</div>

<style>
  .parent {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
  .left {
    display: table-cell;
    width: 100px;
  }
  .right {
    display: table-cell;
    /*宽度为剩余宽度*/
  }
</style>
Nach dem Login kopieren

Probleme mit der Browserkompatibilität bei niedriger Version Leistungsproblem, es ist nur für kleine Layouts geeignet

Nachdem wir das Layout einer Spalte mit fester Breite und einer Spalte mit adaptivem Layout gelernt haben, können wir auch problemlos mehrere Spalten mit fester Breite, eine Spalte mit adaptiver Breite und mehrere implementieren Spalten mit variabler Breite und eine Spalte mit adaptivem Layout werden hier nicht einzeln erläutert. Sie können es selbst ausprobieren oder die zuvor erlernten


und andere Verteilungen konsolidieren

: 1, float

<div>
  <div>
    <p>left</p>
  </div>
  <div>
    <p>right</p>
    <p>right</p>
  </div>
</div>

<style>
  .parent {
    display: flex;
  }
  .left {
    width: 100px;
    margin-left: 20px;
  }
  .right {
    flex: 1;
  }
</style>
Nach dem Login kopieren
Nach dem Login kopieren

Diese Methode ist perfekt kompatibel mit IE8 und höher

2

<div>
  <div>
    <p>1</p>
  </div>
  <div>
    <p>2</p>
  </div>
  <div>
    <p>3</p>
  </div>
  <div>
    <p>4</p>
  </div>
</div>
<style>
  .parent {
    margin-left: -20px;
  }
  .column {
    float: left;
    width: 25%;
    padding-left: 20px;
    box-sizing: border-box;
  }
</style>
Nach dem Login kopieren

ist leistungsstark und einfach, weist aber Kompatibilitätsprobleme auf.

3. Tabelle

<div>
  <div>
    <p>1</p>
  </div>
  <div>
    <p>2</p>
  </div>
  <div>
    <p>3</p>
  </div>
  <div>
    <p>4</p>
  </div>
</div>


<style>
  .parent {
    display: flex;
  }
  .column {
    flex: 1;
  }
  .column+.column { /* 相邻兄弟选择器 */
    margin-left: 20px;
  }
</style>
Nach dem Login kopieren

Layout mit gleicher Höhe

1. Tabelle

Tabelle Die Eigenschaften jeder Spalte sind gleich breit und jede Zeile gleich hoch, was zur Lösung dieses Problems verwendet werden kann Anforderung

<div>
  <div>
    <div>
      <p>1</p>
    </div>
    <div>
      <p>2</p>
    </div>
    <div>
      <p>3</p>
    </div>
    <div>
      <p>4</p>
    </div>
  </div>
</div>

<style>
  .parent-fix {
    margin-left: -20px;
  }
  .parent {
    display: table;
    width: 100%;
    /*可以布局优先,也可以单元格宽度平分在没有设置的情况下*/
    table-layout: fixed;
  }
  .column {
    display: table-cell;
    padding-left: 20px;
  }
</style>
Nach dem Login kopieren

2, flexibel

<div>
  <div>
    <p>left</p>
  </div>
  <div>
    <p>right</p>
    <p>right</p>
  </div>
</div>

<style>
  .parent {
    display: flex;
  }
  .left {
    width: 100px;
    margin-left: 20px;
  }
  .right {
    flex: 1;
  }
</style>
Nach dem Login kopieren
Nach dem Login kopieren

注意这里实际上使用了 align-items: stretch,flex 默认的 align-items 的值为 stretch

3、float

<div>
  <div>
    <p>left</p>
  </div>
  <div>
    <p>right</p>
    <p>right</p>
  </div>
</div>

<style>
  .parent {
    overflow: hidden;
  }
  .left,
  .right {
    padding-bottom: 9999px;
    margin-bottom: -9999px;
  }
  .left {
    float: left;
    width: 100px;
    margin-right: 20px;
  }
  .right {
    overflow: hidden;
  }
</style>
Nach dem Login kopieren

此方法为伪等高(只有背景显示高度相等),左右真实的高度其实不相等。 兼容性较好。

到此,我们了解常见的布局解决方案,这些只是参考,一样的布局实现方式多种多样。主要就使用position、flex 、table(从很久很久以前起,我们就抛弃了table布局页面,但display: table;是异常强大)、float等属性目前flex兼容性较差。

相关文章推荐:

常见css水平自适应布局_html/css_WEB-ITnose

DIV+CSS布局中常见的10大错误_html/css_WEB-ITnose

CSS常用布局实现方法_html/css_WEB-ITnose

Das obige ist der detaillierte Inhalt vonWas sind die CSS-Layouts? Gängige CSS-Layoutmethoden (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Apr 08, 2025 pm 07:05 PM

HTML definiert die Webstruktur, CSS ist für Stil und Layout verantwortlich, und JavaScript ergibt eine dynamische Interaktion. Die drei erfüllen ihre Aufgaben in der Webentwicklung und erstellen gemeinsam eine farbenfrohe Website.

So schreiben Sie geteilte Zeilen auf Bootstrap So schreiben Sie geteilte Zeilen auf Bootstrap Apr 07, 2025 pm 03:12 PM

Es gibt zwei Möglichkeiten, eine Bootstrap -Split -Zeile zu erstellen: Verwenden des Tags, das eine horizontale Split -Linie erstellt. Verwenden Sie die CSS -Border -Eigenschaft, um benutzerdefinierte Style Split -Linien zu erstellen.

HTML, CSS und JavaScript verstehen: Ein Anfängerhandbuch HTML, CSS und JavaScript verstehen: Ein Anfängerhandbuch Apr 12, 2025 am 12:02 AM

WebdevelopmentRelieSonHtml, CSS und JavaScript: 1) HtmlStructuresContent, 2) CSSstylesit und 3) JavaScriptaddssinteraktivität, Bildung von TheBasisofModerernwebexperiences.

Worauf bezieht sich H5? Erforschen des Kontextes Worauf bezieht sich H5? Erforschen des Kontextes Apr 12, 2025 am 12:03 AM

H5REFERSTOHTML5, ApivotaltechnologyInwebdevelopment.1) HTML5IntroducesNewelementsandapisrich, Dynamicwebapplications.2) ITSUPP ortsmultimediaWitHoutPlugins, BETHINGINGUSEREXPERICERCROSSDEVICES.3) SEMANTICELEMENTSIMPROVEPENTENTENTENTRUCTENTRUCTELUREANDSEO.4) H5'SRespo

So verwenden Sie die Bootstrap -Taste So verwenden Sie die Bootstrap -Taste Apr 07, 2025 pm 03:09 PM

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

So richten Sie das Framework für Bootstrap ein So richten Sie das Framework für Bootstrap ein Apr 07, 2025 pm 03:27 PM

Um das Bootstrap -Framework einzurichten, müssen Sie die folgenden Schritte befolgen: 1. Verweisen Sie die Bootstrap -Datei über CDN; 2. Laden Sie die Datei auf Ihrem eigenen Server herunter und hosten Sie sie. 3.. Fügen Sie die Bootstrap -Datei in HTML hinzu; 4. Kompilieren Sie Sass/weniger bei Bedarf; 5. Importieren Sie eine benutzerdefinierte Datei (optional). Sobald die Einrichtung abgeschlossen ist, können Sie die Grid -Systeme, -Komponenten und -stile von Bootstrap verwenden, um reaktionsschnelle Websites und Anwendungen zu erstellen.

So fügen Sie Bilder auf Bootstrap ein So fügen Sie Bilder auf Bootstrap ein Apr 07, 2025 pm 03:30 PM

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

See all articles