Heim > Artikel > Web-Frontend > Vertiefende Kenntnisse zur Verwendung von Margen in CSS
1.css margin kann die Größe des Containers ändern
Elementgröße
Sichtbare Größe – die Breite der Box im Standard- Boxmodell ist nicht enthalten Der Margin-Wert, vom ClientWidth
belegte Größe – einschließlich der Breite von margin outWidth ist nicht im Standard, es gibt eine entsprechende Methode in jquery
margin und visuelle Größe
1.1 Verwenden Sie das gewöhnliche horizontale Blockelement, das keine Breite/Höhe festlegt
2.2 Gilt nur für horizontale Abmessungen
Text
Anwendung: Adaptives Layout mit fester Breite auf einer Seite implementieren
Gilt für horizontale Block-/Inline-Block-Elemente
p>
Kapitel 2: CSS-Marge und Prozenteinheit – Margin-Prozenteinheit verstehen
Horizontaler Prozentsatz/vertikaler Prozentsatz
Gewöhnlicher Elementprozentsatz/Absoluter Elementprozentsatz
Prozentmarge-Berechnungsregeln
img{margin:10%;with:600px;heigth:200px;}
Der prozentuale Spielraum gewöhnlicher Elemente wird relativ zur Breite des Containers berechnet! Der Spielraum hier: 10 %;---->
top:60px, left:60px; werden alle relativ zur Breite des Containers berechnet.
Absolute PositionierungDer prozentuale Spielraum des Elements
img{margin:10%; position:absolute;}
Der prozentuale Spielraum des absoluten Elements ist relativ zum ersten Das Vorgängerelement des positionierten Elements hat eine berechnete (relative/absolute/feste) Breite. Gewöhnliche Elemente werden relativ zu ihrem übergeordneten Element berechnet.
="margin: 10%;position:absolute;" />
.box{background-color:olive;
overflow
:hidden;}
.box > ; p{margin:50%} me Down in in in ind ins in on in on on margins in this page >> .box{background-color:olive; overflow
:hidden;}
Überlauf wird hier eingestellt, um Randüberlappungen zu verhindern
Kapitel 3 Gemeinsame Merkmale von Randüberlappungen
1. Blockieren Sie horizontale Elemente (ausgenommen Float- und absolute Elemente)
2. Berücksichtigen Sie nicht den Schreibmodus (Die Textschreibrichtung ist von oben nach unten), tritt nur in vertikaler Richtung auf (Rand oben/Rand unten)
Randüberlappung 3 Situationen
1. Angrenzende Geschwisterelemente
p{line-height:2em;margin:1em 0;background:#f0f3f9;}
Erste Zeile
🎜>
Rand-unten überlappend
1.1 Übergeordnetes Element ohne Blockformatierung, Kontextelement
1.2 Übergeordnetes Element ohne Rahmen-unten-Einstellung
1.3 Übergeordnetes Element ohne padding-bottom Wert
1.4 Es gibt keine Inline-Elementtrennung zwischen dem übergeordneten Element und dem letzten untergeordneten Element
1.5 Das übergeordnete Element hat keine Einschränkungen für Höhe, Mindesthöhe, Maximalhöhe
Margin-Top entfernen überlappen
. vater{background:#f0f3f9}
son< /p>
son
;/p>
1. Nehmen Sie den größten Wert für positiv und positiv
.a{margin-bottom:50px;}
.b {margin-top:20px;}
.son {margin-top:50px;}
< ;/p>
Die obigen Ergebnisse sind margin:50px;
2. Positive und negative Werte hinzufügen
.a{margin-bottom:50px;}
.b{margin-top:- 20px;}
.son{margin-top: 50px;
> {margin-top:-20px;margin-bottom:50px}
3. Das fehlende p-Element hat keinen Einfluss auf das ursprüngliche Leselayout
Übung:
Marginüberlappung sinnvoll nutzen
.list{margin-top:15px;}
Bessere Implementierung von
.list{
margin- top: 15px;
margin-bottom:15px;
Kapitel 4: Margin:auto in CSS verstehen
Der Mechanismus von margin:auto
Elemente werden manchmal automatisch gefüllt, auch wenn Breite oder Höhe nicht festgelegt sind
p{background:#f0f3f9}
Wenn Sie Breite oder Höhe festlegen, wird die Funktion zum automatischen Ausfüllen überschrieben
Breite oder Höhe, Die Funktion zum automatischen Ausfüllen wird außer Kraft gesetzt.
Die ursprüngliche Größe, die ausgefüllt werden soll, wird zwangsweise durch Breite/Höhe geändert, und „margin: auto“ wird so eingestellt, dass diese geänderte Größe gefüllt wird.
p{width:500px;malign-
:100px;margin-left:auto;}
Wenn eine Seite fest ist, ist eine Seite automatisch, und auto ist die Größe des verbleibenden Speicherplatzes. Wenn beide Seiten automatisch sind, wird der verbleibende Speicherplatz geteilt gleichermaßen
Da das Bild inline horizontal ist, nimmt es nicht den gesamten Container ein, selbst wenn keine Breite vorhanden ist.
Setze img{display
:block;width:200px;marign:0 auto;}
Da das Bild zu diesem Zeitpunkt blockhorizontal ist, wird es auch dann die Breite einnehmen, wenn keine Breite vorhanden ist Der gesamte Container kann nicht in einer Zeile angezeigt werden.
Warum ist es offensichtlich, dass die Containerhöhe fest ist und die Elementhöhe margin: auto 0 nicht vertikal zentriert werden kann
.father{height:200px;background:#f0f3f9;}
.son{ height:100px; width:500px;margin:auto;}
Erklärung: Wenn .son die Höhe nicht auf 100 Pixel festlegt, wird die Höhe dann automatisch auf 200 Pixel eingestellt? ——NEIN Daher kann der Rand nicht automatisch gefüllt werden. Die Festlegung von Breite und Höhe ist erzwungen, sodass er nicht automatisch gefüllt wird.
Hinweis: Wenn das untergeordnete Element in horizontaler Richtung größer als das übergeordnete Element ist, wird das Berechnungsergebnis nicht zentriert, selbst wenn es ein negativer Wert ist.
ulous in in vertikaler Richtung margin:auto
.son{height:100px ;width:500px;margin:auto;}
Absolut und Rand sind zentriert
.father{height: 200px;position:relative;}
.son{position:absolute; top:0px right:0px unten :0px;left:0px}
.son hat keine Breite/Höhe und das absolute Element füllt automatisch den Container.
Wenn Breite und Höhe festgelegt sind
.father{height:200px;position:relative;}
.son{position:absolute; top:0px right:0px unten:0px;left:0px ;width:500px;height:100px;}
Früher war es gestreckt und gespreizt, aber jetzt ist es zurückgezogen.
.father{height:200px;position:relative;}
.son{position:absolute; top:0px right:0px unten:0px;links:0px;width:500px;height:100px;margin:auto;}
Unterstützt IE8+ und höher!
Kapitel 5: CSS-Randpositionierung mit negativen Werten
1. Ausrichtung beider Enden mit negativem Rand (Rand ändert Elementgröße)
Beispiel
.box{
width:1200px; margin: auto ;background:orange;
.ul{overflow:hidden;}
.li{
width:380px;height:300px;
x;background:green; float: left;
}
}
Der letzte der implementierten Liste hinterlässt eine Lücke.
Die Größe des Containers wird geändert, indem ein negativer Randwert verwendet wird, um den Container breiter zu machen. Kann dieses Problem perfekt lösen
width:386.66px;height:300px;
margin-right:20px;
background:green;
float:left;
float:left;
}
}
2. Margin ist negativ. Der gleich hohe Layout-Rand unter dem Wert ändert den vom Element eingenommenen Platz
Margin und oberer und unterer Rand
3. Zweispaltige Anpassung unter Negativ Randwerte Layout, Elemente belegen Platz und bewegen sich mit dem Rand
Kapitel 6: Analyse der ungültigen CSS-Marign-Situation
1. Der vertikale Rand von horizontalen Inline-Elementen ist ungültig
2 Voraussetzungen 1. Nicht-Ersatzelemente, z. B. Nicht-IMG-Elemente; 2. Normaler Schreibmodus
Beispiel
Die Einstellung von margin233px;
für span ist horizontal gültig, vertikal jedoch ungültig.
2.Randüberlappungen
3.display:table-cell
display:table-cell/display:tab-row und andere Deklarationsränder sind ungültig!
Ausnahme Ersatzelemente img, button
4. Position und Rand
Der Randwert der nicht positionierten Richtung des absolut positionierten Elements ist „ungültig“
Der Randwert des absolut positionierten Elements ist immer gültig, nicht nur wie bei normalen Elementen.
5. Der außerhalb der Reichweite liegende Rand schlägt fehl
6. Randfehler durch Inlining
p[style="height:200px;background-color:#f0f3f9;"]>img[style="marign-top:30;"]
Es schlägt fehl, wenn margin-top groß genug ist.
Erklärung: Inline-Elemente müssen an der Grundlinie ausgerichtet sein. Das Hinzufügen eines x nach dem Bild zeigt, dass es, egal wie weit der Rand oben ist, nicht über die Außenseite des Containers hinausragt.
Kapitel 7 margin-start und margin-end
margin-start
img{
margin-left:100px;
-webkit-margin-start:100px ;
-moz-margin-start:100px;
margin-sart:100px;
2. Wenn der horizontale Fluss von rechts nach links erfolgt, ist margin-start äquivalent zu margin-right;
:ltr(rtl)
3. Unter vertikalem Fluss (writring-mode:vertical-lr) entspricht margin-sart margin-top Andere marginbezogene Attribute unter Webkit margin-
before
img{-webkit-margin-before:100px;} Standardflussrichtung In diesem Fall entspricht es margin-top margin-after img{-webkit- marign-after:100px;} Im Fall der Standardflussrichtung entspricht dies margin-bottom;
margin-collapse Der äußere Rand überlappt
-webkit-margin-collapse: Collapse|discard|separate
Überlappung des Kontrollbereichs
Standardüberlappung einklappen
Verwerfen
Das obige ist der detaillierte Inhalt vonVertiefende Kenntnisse zur Verwendung von Margen in CSS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!