Positionieren Sie ein HTML-Element relativ zu seinem Container mithilfe von CSS
Ich versuche, erstellen Sie eine horizontale 100% gestapeltes Balkendiagramm mit HTML und CSS. Ich möchte die bars DIVs mit hintergrund Farben und die prozentuale breiten in Abhängigkeit der Werte möchte ich grafisch darstellen. Ich will auch haben ein raster von Linien zu markieren eine beliebige position entlang der graph.
In meinem Experiment habe ich schon bekommen die Stangen zu stapeln horizontal durch die Zuweisung der CSS-Eigenschaft float: left
. Allerdings möchte ich vermeiden, dass, wie es scheint wirklich zu Chaos mit dem layout und verwirrenden Möglichkeiten. Auch die grid-Linien scheinen nicht sehr gut zu funktionieren, wenn die Balken schwebte werden.
Ich denke, dass die CSS-Positionierung sollten in der Lage sein, damit umzugehen, aber ich weiß noch nicht wissen, wie es zu tun. Ich möchte in der Lage sein, um anzugeben, die position mehrerer Elemente relativ zur oberen linken Ecke der container. Ich starte in diese Art von Problem wird regelmäßig (auch außerhalb dieser speziellen Graphen-Projekt), also würde ich gerne eine Methode, die:
- Cross-browser (idealerweise ohne zu viele browser-hacks)
- Läuft im Quirks-mode
- So klar/sauber wie möglich, zu erleichtern Anpassungen
- Durchgeführt, ohne JavaScript, wenn möglich.
InformationsquelleAutor der Frage Craig Walker | 2008-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast Recht, dass CSS-Positionierung ist der Weg zu gehen. Hier ein schneller Durchlauf unten:
position: relative
layout wird ein element relativ zu selbst. In anderen Worten, die Elemente gelegt, die im normalen Ablauf, dann ist es entfernt von der normalen Ablauf-und offset-von was auch immer Werte, die Sie angegeben haben (oben, rechts, unten, Links). Es ist wichtig zu beachten, dass, weil es entfernt von der Strömung, andere Elemente um ihn herum nicht verschieben (mit negativen Margen statt, wenn Sie möchten dieses Verhalten).Jedoch, sind Sie wahrscheinlich daran interessiert
position: absolute
die position eines Elements relativ zu einem container. Standardmäßig ist der container aus dem browser-Fenster, aber wenn Sie ein übergeordnetes element entweder hatposition: relative
oderposition: absolute
drauf ist, dann wird es fungiert als Muttergesellschaft für die Positionierung Koordinaten für seine Kinder.Demonstrieren:
In diesem Beispiel ist die Obere linke Ecke des
#box
wäre 100px nach unten und 50 Pixel Links von der linken oberen Ecke der#container
. Wenn#container
nichtposition: relative
setzen, werden die Koordinaten des#box
wäre relativ zur oberen linken Ecke des browser-Ansicht-port.Hoffe, das hilft.
InformationsquelleAutor der Antwort Bryan M.
Müssen Sie explizit festlegen, die position des übergeordneten Containers zusammen mit der position des untergeordneten Containers. Die typische Art und Weise zu tun, das ist etwas wie dieses:
InformationsquelleAutor der Antwort Stephen Deken
Ich weiß, ich bin spät dran, aber hoffe, das hilft.
Folgenden sind die Werte für die position-Eigenschaft.
position : static
Dies ist die Standardeinstellung. Es bedeutet, das element wird bei auftreten einer position, die es normalerweise tun würde.
position : fixed
Damit wird die position eines Elements in Bezug auf das Browserfenster (viewport). Ein fest positioniertes element bleibt in seiner position, auch wenn die Seite scrollt.
(Ideal, wenn Sie wollen, scroll-to-top-button in der unteren rechten Ecke der Seite).
position : relative
Platz für ein element an eine neue Position relativ zu seiner ursprünglichen position.
Den obigen CSS verschieben Sie den #myelem element 30px nach Links und 30px von der Spitze der den tatsächlichen Speicherort.
position : absolute
Wenn wir wollen, dass ein element platziert werden um eine exakte position auf der Seite.
Den oben genannten CSS position #myelem element an einer position 30px von oben und 300px von der linken in die Seite und scrollt mit der Seite.
Und schließlich...
position relative + absolute
Können wir die position-Eigenschaft des übergeordneten Elements zu relative und legen Sie dann die position-Eigenschaft für das untergeordnete element, für absolute. Auf diese Weise können wir die position des Kindes in relation zum übergeordneten Element an eine absolute position.
Finden wir in dem Bild oben die #div-2 element ist positioniert in der oberen rechten Ecke im inneren des #container element.
GitHub: finden Sie den HTML-von dem Bild oben hier und CSS -hier.
Hoffe, das tutorial hilft.
InformationsquelleAutor der Antwort yusufshakeel
Absolute Positionierung Positionen ein element relativ zu seiner nächsten positionierten Vorfahren. So setzen
position: relative
auf den Behälter, dann für die Kind-Elementetop
undleft
relativ zu der oberen linken Seite des container, so lange wie die Kind-Elemente habenposition: absolute
. Weitere Informationen finden Sie in die CSS-2.1-Spezifikation.InformationsquelleAutor der Antwort Jim
Wenn Sie brauchen, um die position eines Elements relativ zu dem enthaltenden element zuerst müssen Sie
position: relative
auf das container-element. Das untergeordnete element, das Sie wollen, um die position relativ zum übergeordneten hatposition: absolute
. Die Art und Weise, dass absolute Positionierung funktioniert, ist, dass es gemacht wird relativ zu der ersten relativ (oder absolut) positionierten Eltern-element. In Fall gibt es keine relativ positioniert Elternteil, das element wird relativ positioniert, um die root-element (direkt auf das HTML-element).Also, wenn Sie wollen position Ihre Kind-element nach oben Links auf den übergeordneten container, das sollten Sie tun:
Wird Ihnen von großem nutzen Lesen dieser Artikel. Hoffe, das hilft!
InformationsquelleAutor der Antwort Nesha Zoric