Ich bin ein Anfänger in der Schienenprogrammierung und versuche, viele Bilder auf einer Seite anzuzeigen. Einige Bilder sollen auf anderen liegen. Nehmen wir zur Vereinfachung an, ich möchte ein blaues Quadrat mit einem roten Quadrat in der oberen rechten Ecke des blauen Quadrats (aber nicht eng in der Ecke). Ich versuche, Compositing (mit ImageMagick und ähnlichem) aufgrund von Leistungsproblemen zu vermeiden.
Ich möchte nur überlappende Bilder relativ zueinander positionieren.
Stellen Sie sich als schwierigeres Beispiel einen Kilometerzähler vor, der sich in einem größeren Bild befindet. Für sechs Ziffern müsste ich eine Million verschiedene Bilder zusammensetzen oder alles im laufenden Betrieb erledigen, wobei nur die sechs Bilder über dem anderen platziert werden müssen.
quelle
Antworten:
Ok, nach einiger Zeit bin ich auf Folgendes gelandet:
Als einfachste Lösung. Das ist:
Erstellen Sie ein relatives Div, das im Seitenfluss platziert wird. Platzieren Sie das Basisbild zuerst als relativ, damit der Div weiß, wie groß es sein sollte. Platzieren Sie die Überlagerungen als absolut relativ zur oberen linken Ecke des ersten Bildes. Der Trick besteht darin, die Verwandten und Absoluten richtig zu machen.
quelle
a
und "b" eine ID von hätteb
, könnte dieser JavaScript-Code (Einstellungx
undy
nach einiger Berechnung) zum Ändern der Position von funktionierenb
?Dies ist ein Barebone-Blick auf das, was ich getan habe, um ein Bild über ein anderes zu schweben.
Quelle
quelle
Hier ist Code, der Ihnen Ideen geben kann:
JSFiddle
Ich vermute, dass die Lösung von Espo unpraktisch sein kann, da Sie beide Bilder unbedingt positionieren müssen. Möglicherweise möchten Sie, dass sich der erste im Fluss positioniert.
Normalerweise gibt es einen natürlichen Weg, dies zu tun, nämlich CSS. Sie setzen position: relative auf das Containerelement und positionieren dann Kinder absolut darin. Leider können Sie nicht ein Bild in ein anderes einfügen. Deshalb brauchte ich Container Div. Beachten Sie, dass ich es zu einem Float gemacht habe, damit es automatisch an seinen Inhalt angepasst wird. Anzeige: Inline-Block sollte theoretisch auch funktionieren, aber die Browserunterstützung ist dort schlecht.
BEARBEITEN: Ich habe Größenattribute aus den Bildern gelöscht, um meinen Standpunkt besser zu veranschaulichen. Wenn Sie möchten, dass das Containerbild seine Standardgrößen hat und Sie die Größe vorher nicht kennen, können Sie den Hintergrundtrick nicht verwenden . Wenn Sie dies tun, ist es ein besserer Weg.
quelle
Ein Problem, das mir aufgefallen ist und Fehler verursachen kann, ist der folgende Code in der Antwort von rrichter:
sollte die px-Einheiten innerhalb des Stils enthalten, z.
Davon abgesehen hat die Antwort gut funktioniert. Vielen Dank.
quelle
Sie können absolut
pseudo elements
relativ zu ihrem übergeordneten Element positionieren .Dies gibt Ihnen zwei zusätzliche Ebenen, mit denen Sie für jedes Element spielen können - so wird das Positionieren eines Bildes über einem anderen einfach - mit minimalem und semantischem Markup (keine leeren Divs usw.).
Markup:
CSS:
Hier ist eine LIVE DEMO
quelle
Der einfache Weg, dies zu tun, besteht darin, ein Hintergrundbild zu verwenden und dann einfach ein <img> in dieses Element einzufügen.
Die andere Möglichkeit ist die Verwendung von CSS-Ebenen. Es gibt eine Menge Ressourcen, die Ihnen dabei helfen. Suchen Sie einfach nach CSS-Ebenen .
quelle
Inline-Stil nur zur Klarheit hier. Verwenden Sie ein echtes CSS-Stylesheet.
quelle
Es mag etwas spät sein, aber dafür können Sie Folgendes tun:
HTML
SASS
quelle
@ buti-oxa: Nicht umständlich zu sein, aber dein Code ist ungültig. HTML
width
undheight
Attribute lassen keine Einheiten zu. Sie denken wahrscheinlich an das CSSwidth:
und dieheight:
Eigenschaften. Sie solltentext/css
dem<style>
Tag auch einen Inhaltstyp ( siehe Espos Code) geben .Das Belassen
px;
der Attributewidth
undheight
kann dazu führen, dass eine Rendering-Engine blockiert.quelle
Erstellen Sie ein relatives Div, das im Seitenfluss platziert wird. Platzieren Sie das Basisbild zuerst als relativ, damit der Div weiß, wie groß es sein sollte. Platzieren Sie die Überlagerungen als absolut relativ zur oberen linken Ecke des ersten Bildes. Der Trick besteht darin, die Verwandten und Absoluten richtig zu machen.
quelle