Heim  >  Artikel  >  Web-Frontend  >  CSS3 Was ist Flexbox? Der Unterschied und die Verwendung von Flex- und Box-Attributwerten im Anzeigeattribut

CSS3 Was ist Flexbox? Der Unterschied und die Verwendung von Flex- und Box-Attributwerten im Anzeigeattribut

青灯夜游
青灯夜游Original
2018-09-08 15:42:574626Durchsuche

In unserem Entwicklungs- und Designprozess von Web-Frontend-Webseiten ist das Layout ein sehr wichtiger Teil. Das Layout wird verwendet, um die Größe und Position verschiedener Komponenten und Elemente auf der Seite zu bestimmen. In diesem Kapitel stellen wir Ihnen ein CSS3-Layoutmodell vor: das Flex-Box-Modell (Flex-Box), damit Sie verstehen, was eine Flex-Box in CSS3 ist, sowie den Unterschied und die Verwendung der Flex- und Box-Attributwerte ​​​des Anzeigeattributs in der Flexbox. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

1: Was ist eine flexible Box
CSS3 Flexible Box (Flexible Box oder Flexbox) ist eine Layoutmethode, die sicherstellt, dass Elemente ein angemessenes Verhalten aufweisen, wenn die Seite an unterschiedliche Bildschirmgrößen und Gerätetypen angepasst werden muss. Der Zweck der Einführung des Flexbox-Layoutmodells besteht darin, eine effizientere Möglichkeit zum Anordnen, Ausrichten und Zuweisen von Leerraum zu Unterelementen in einem Container bereitzustellen. Viele gängige komplexe Layoutanforderungen können auf einfache Weise erfüllt werden. Sein Vorteil besteht darin, dass Entwickler nur das Verhalten deklarieren, das das Layout haben soll, ohne spezifische Implementierungsmethoden anzugeben. Für das eigentliche Layout ist der Browser verantwortlich. Dieses Layoutmodell wird in den wichtigsten Browsern unterstützt.

2: CSS3 Flexible Box-Inhalt
Die flexible Box besteht aus Flex-Container und Flex-Artikel.
Ein flexibler Container wird als flexibler Container definiert, indem der Wert der Anzeigeeigenschaft auf „Flex“ oder „Inline-Flex“ gesetzt wird.
Ein flexibler Container enthält ein oder mehrere flexible Unterelemente.
Hinweis: Die Außenseite des flexiblen Containers und die Innenseite des flexiblen Unterelements werden normal gerendert. Die Flex-Box definiert nur, wie die untergeordneten Flex-Elemente innerhalb des Flex-Containers angeordnet sind.

3: Der Unterschied und die Verwendung zwischen display:box und display:flex

1. display:box steuert hauptsächlich die Anordnung, Reihenfolge und Vertikalität der untergeordneten Elemente im übergeordneten Container (Horizontale) Ausrichtung

display:box ist eine Syntax vor 2009 und veraltet. Sie müssen das entsprechende Präfix hinzufügen, um es zu verwenden.

Der Kompatibilitätscode lautet also ungefähr wie folgt

display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
    display: -moz-box; /* Firefox 17- */
    display: -webkit-flex; /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
    display: -moz-flex; /* Firefox 18+ */
    display: -ms-flexbox; /* IE 10 */
    display: flex;

Zum Beispiel:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>弹性盒子--display: box;</title>
		<style>
			.box {
				width: 330px;
				height: 400px;
				border: 1px #000 solid;
				margin: 0 auto;
				display: -webkit-box;
				display: -moz-box;
				display: -ms-flexbox;
				display: -o-box;
				display: box;
				}
				
				.box p {
				width: 100px;
				height: 20px;
				background: #000;
				margin: 5px;
			}
		</style>
	</head>
	<body>
		<div class="box">
			<p>123</p>
			<p>123</p>
			<p>123</p>
		</div>
	</body>
</html>

Rendering:

CSS3 Was ist Flexbox? Der Unterschied und die Verwendung von Flex- und Box-Attributwerten im Anzeigeattribut

Nach der Deklaration eines display:box-Teleskopbox-Attributs für das übergeordnete Element bedeutet dies, dass die Blockelemente in der gesamten Box in Inline-Elemente umgewandelt werden und die untergeordneten Elemente im übergeordneten Element dann frei Platz zuweisen können. Jedes Blockelement wird dies tun nicht eine eigene Zeile belegen, sondern gemeinsam auf derselben Zeile angeordnet werden. Im obigen Beispiel werden beispielsweise die drei p-Tags im div in einer Zeile angezeigt und nicht hierarchisch verteilt.

Zweitens: display:flex ermöglicht hauptsächlich die Aufteilung des untergeordneten Containers nach bestimmten Regeln entsprechend der Breite des übergeordneten Containers.

display:flex erschien nach 2011 und wird auch das sein Die meisten neuen Browser müssen in Zukunft grundsätzlich keine Präfixe mehr verwenden. Derzeit sollten nur Apple-Browser über Webkit-Präfixe verfügen, andere können normal angezeigt werden.

Die neue Version legt die Anzeigeattribute der Teleskopbox wie folgt fest:
display:flex; Zeigt das Container-Box-Modell als elastische Box auf Blockebene an (neue Version)
display:inline-flex; Zeigt das Container-Box-Modell als elastische Box auf Inline-Ebene an (neue Version)

Verwendung:

Zuallererst die Verwendung von Flex erfordert einen übergeordneten Container, es gibt mehrere Elemente im übergeordneten Container

Übergeordneter Container: Container

Attribute:

 display:flex;/*flex block level, inline-. flex: inline fast */

 justify-content:space-around;/*center: horizontal zentriert, flex-start: nach links; space-between: nach beiden neigen Seiten, gleichmäßig in der Mitte geteilt ;space-around: perfekte gleichmäßige Verteilung*/

align-items: stretch;/*center: vertikale Mitte, Flex-Start: nach oben, Flex-Ende: nach unten, space-between, space- around*/ 

 flex-direction: row;/*column ist von oben nach unten angeordnet, Column-Reverse, Row: von links nach rechts, Row-Reverse: von rechts nach links */

flex-wrap:wrap;/*wrap mehrzeilige Anzeige (wenn der übergeordnete Container nicht ausreicht, um von oben nach unten angezeigt zu werden), nowrap (wenn der Container nicht breit genug ist, wird der untergeordnete Container angezeigt). Elemente teilen die Breite oder Höhe des übergeordneten Containers gleichmäßig auf), Wrap -reverse: von unten nach oben*/

/*flex-flow ist die Abkürzung für Flex-Direction und Flex-Wrap*/

Zum Beispiel:

<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>弹性盒子--display:flex;</title>
  <style>
    .container{
       width:600px;
       height:400px;
       border:1px solid #000;
       display:flex;/*flex块级,inline-flex:行内快*/
       justify-content:space-around;
       align-items:stretch;
       flex-direction: row;
       flex-wrap:wrap;
       /*flex-flow是flex-direction、flex-wrap的缩写*/
    }
    .box{
      width:200px;
       height:100px;
        border:1px solid #000;
     }
   </style>
 </head>
 <body>
     <div>
       <div>这是中间的box1</div>
         <div>这是中间的box2</div>
   </div>
 </body>
</html>

Rendering:

CSS3 Was ist Flexbox? Der Unterschied und die Verwendung von Flex- und Box-Attributwerten im Anzeigeattribut

Beachten Sie, dass nach der Einstellung auf das Flex-Layout das Float, klar und vertikal ausgerichtet ist Attribute von untergeordneten Elementen sind ungültig.


Das obige ist der detaillierte Inhalt vonCSS3 Was ist Flexbox? Der Unterschied und die Verwendung von Flex- und Box-Attributwerten im Anzeigeattribut. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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