2010-10-27 12 views
61

Ich bin mir nicht sicher, ob ich den Unterschied zwischen diesen beiden völlig verstehe.CSS: Top vs Margin-top

Kann jemand erklären, warum ich einen über den anderen verwenden würden und wie sie sich unterscheiden?

Antwort

56

top ist für zwicken ein Element mit der Verwendung von position Eigenschaft.
margin-top ist für die Messung der externen Abstand zum Element, in Bezug auf die vorherige.

Auch top Verhalten kann je nach Art der Position abweichen, absolute, relative oder fixed.

5

von Bytes:

„Margin ist, dass der Raum zwischen dem Rand einer Box des Elements und dem Rand des gesamten Box, wie beispielsweise den Rand eines Buchstabens‚top‘, um die Randkante des verschiebt Element aus der enthält. Blöcke, wie das gleiche Stück Papier in einer Pappschachtel, aber es ist nicht gegen den Rand des Behälters. "

Mein Verständnis ist, dass margin-top einen Seitenrand auf dem Element erzeugt, und setzt die oben Oberkante des Elements unter dem oberen Rand des umschließenden Elements am Offset.

Sie können es hier versuchen:

http://w3schools.com/css/tryit.asp?filename=trycss_position_top

ersetzen Sie einfach oben mit margin-top den Unterschied zu sehen.

65

Sie würden Ränder verwenden, wenn Sie ein (Block) Element weg von anderen Elementen in dem Dokumentenfluss bewegen wollen. Das bedeutet, dass es die folgenden Elemente weiter nach unten drücken würde. Beachten Sie, dass vertikale Ränder benachbarter Elemente zusammenbrechen.

Wenn Sie das Element wollte keine Auswirkungen auf die umgebenden Elemente haben, dann würden Sie Positionierung verwenden (abs., Rel.) Und die top, bottom, left und right Einstellungen.

Mit relative Positionierung wird das Element immer noch seinen ursprünglichen Platz als einnehmen, wenn statisch positioniert. Deshalb passiert nichts, wenn Sie einfach von static zu relative Position wechseln. Von dort können Sie es dann über die umgebenden Elemente schieben.

Mit der absolute Positionierung entfernen Sie das Element vollständig aus dem (statischen) Dokumentfluss, sodass der von ihm belegte Speicherplatz freigegeben wird. Sie können es dann frei positionieren - aber relativ zum nächsten besten nicht-statisch positionierten Element, das darum gewickelt ist. Wenn es keine gibt, wird es auf der ganzen Seite verankert.

6

Margin gilt und verlängert/Verträge über die normale Grenze des Elements, aber wenn man oben rufen Sie ignorieren die reguläre Position des Elements und es in eine bestimmte Position schweben.

Beispiel:

html:

<div id="some_element">content</div> 

CSS:

#some_element {margin-top: 50%} 

das Element html bei 50% der Höhe des Containers (dh das div das Wort anzeigt beginnt Anzeigemittel "content" würde bei 50% Höhe des enthaltenen div- oder html-Knotens direkt vor div # some_element angezeigt werden, aber wenn Sie den Inspektor Ihres Browsers öffnen (f12 unter Windows oder cmd + alt + i auf dem Mac) und Bewegen Sie die Maus über das Element und Sie werden sehen, dass die Grenzen hervorgehoben sind. Beachten Sie, dass das Element nach unten verschoben wurde, anstatt es neu zu positionieren.

Top auf der anderen Seite:

#some_element {top: 50%} 

Wird Neupositionierung tatsächlich das Element bedeutet, dass es immer noch bei 50% des Containers angezeigt werden, aber es wird das Element neu positionieren, um seine Kante bei 50% seines enthaltenden Elements beginnt . Mit anderen Worten, es wird eine Lücke zwischen den Kanten des Elements und seinem Behälter geben.

Prost!

2

Die top-Eigenschaft ist eine Positionseigenschaft. Es wird mit der position Eigenschaft wie absolute oder relative verwendet. margin-top ist eine Elementeigenschaft.