Ich versuche, ein horizontales, zu 100% gestapeltes Balkendiagramm mit HTML und CSS zu erstellen. Ich möchte die Balken DIVs
mit Hintergrundfarben und prozentualen Breiten erstellen, abhängig von den Werten, die ich grafisch darstellen möchte. Ich möchte auch Gitterlinien haben, um eine beliebige Position entlang des Diagramms zu markieren.
In meinen Experimenten habe ich die Balken bereits durch Zuweisen der CSS-Eigenschaft zum horizontalen Stapeln gebracht float: left
. Ich möchte dies jedoch vermeiden, da es wirklich verwirrend mit dem Layout zu tun zu haben scheint. Außerdem scheinen die Gitterlinien nicht sehr gut zu funktionieren, wenn die Balken schweben.
Ich denke, dass die CSS-Positionierung in der Lage sein sollte, damit umzugehen, aber ich weiß noch nicht, wie ich das machen soll. Ich möchte in der Lage sein, die Position mehrerer Elemente relativ zur oberen linken Ecke ihres Containers anzugeben. Ich stoße regelmäßig auf diese Art von Problem (auch außerhalb dieses speziellen Grafikprojekts), daher möchte ich eine Methode, die:
- Browserübergreifend (idealerweise ohne zu viele Browser-Hacks)
- Läuft im Quirks-Modus
- So klar / sauber wie möglich, um Anpassungen zu erleichtern
- Wenn möglich ohne JavaScript.
quelle
Antworten:
Sie haben Recht, dass die CSS-Positionierung der richtige Weg ist. Hier ist ein kurzer Überblick:
position: relative
legt ein Element relativ zu sich selbst an. Mit anderen Worten, die Elemente werden im normalen Fluss angeordnet, dann aus dem normalen Fluss entfernt und um die von Ihnen angegebenen Werte (oben, rechts, unten, links) versetzt. Es ist wichtig zu beachten, dass andere Elemente um ihn herum nicht verschoben werden, da es aus dem Fluss entfernt wird (verwenden Sie stattdessen negative Ränder, wenn Sie dieses Verhalten wünschen).Sie sind jedoch höchstwahrscheinlich daran interessiert,
position: absolute
welches Element relativ zu einem Container positioniert wird. Standardmäßig ist der Container das Browserfenster. Wenn jedoch ein übergeordnetes Element vorhandenposition: relative
oderposition: absolute
festgelegt ist, fungiert es als übergeordnetes Element für die Positionierungskoordinaten für seine untergeordneten Elemente .Demonstrieren:
In diesem Beispiel wäre die obere linke Ecke von
#box
100 Pixel nach unten und 50 Pixel nach links von der oberen linken Ecke von#container
. Wenn#container
nichtposition: relative
festgelegt,#box
wären die Koordinaten von relativ zur oberen linken Ecke des Browser-Ansichtsfensters.quelle
Sie müssen die Position des übergeordneten Containers zusammen mit der Position des untergeordneten Containers explizit festlegen. Der typische Weg, dies zu tun, ist ungefähr so:
quelle
Ich weiß, dass ich zu spät komme, hoffe aber, dass dies hilft.
Es folgen die Werte für die Positionseigenschaft.
Position: statisch
Dies ist die Standardeinstellung. Dies bedeutet, dass das Element an einer Position auftritt, an der es normalerweise auftreten würde.
Position: fest
Dadurch wird die Position eines Elements in Bezug auf das Browserfenster (Ansichtsfenster) festgelegt. Ein fest positioniertes Element bleibt auch dann in seiner Position, wenn die Seite gescrollt wird.
(Ideal, wenn Sie in der unteren rechten Ecke der Seite nach oben scrollen möchten).
Position: relativ
Platzieren eines Elements an einer neuen Position relativ zu seiner ursprünglichen Position.
Das obige CSS verschiebt das # myelem-Element 30px nach links und 30px vom oberen Rand seiner tatsächlichen Position.
Position: absolut
Wenn ein Element genau an der Position auf der Seite platziert werden soll.
Das obige CSS positioniert das # myelem-Element an einer Position 30 Pixel von oben und 300 Pixel von links auf der Seite und scrollt mit der Seite.
Und schlussendlich...
Position relativ + absolut
Wir können die Positionseigenschaft eines übergeordneten Elements auf relativ und dann die Positionseigenschaft des untergeordneten Elements auf absolut setzen . Auf diese Weise können wir das Kind relativ zum Elternteil an einer absoluten Position positionieren.
Im obigen Bild sehen wir, dass das Element # div-2 in der oberen rechten Ecke des Elements #container positioniert ist.
GitHub: Den HTML-Code des obigen Bildes finden Sie hier und CSS hier .
Hoffe, dieses Tutorial hilft.
quelle
Durch die absolute Positionierung wird ein Element relativ zu seinem nächsten positionierten Vorfahren positioniert. Setzen Sie also
position: relative
den Container auf, dann für untergeordnete Elemente,top
und befinden Sieleft
sich relativ zur oberen linken Ecke des Containers, solange die untergeordneten Elemente vorhanden sindposition: absolute
. Weitere Informationen finden Sie in der CSS 2.1-Spezifikation .quelle
Wenn Sie ein Element zuerst relativ zu seinem enthaltenden Element positionieren müssen, müssen Sie
position: relative
es dem Containerelement hinzufügen . Das untergeordnete Element, das Sie relativ zum übergeordneten Element positionieren möchten, muss vorhanden seinposition: absolute
. Die absolute Positionierung funktioniert so, dass sie relativ zum ersten relativ (oder absolut) positionierten übergeordneten Element erfolgt . Falls es kein relativ positioniertes übergeordnetes Element gibt, wird das Element relativ zum Stammelement positioniert (direkt zum HTML-Element) .Wenn Sie also Ihr untergeordnetes Element oben links im übergeordneten Container positionieren möchten, sollten Sie Folgendes tun:
Sie werden stark vom Lesen dieses Artikels profitieren . Hoffe das hilft!
quelle