Design-Objekte per HTML positionieren?

  • Hallöchen!

    Folgendes Problem: Ich will für eine kleine "Notvisualisierung" mit auf einer Webseite ein paar Tasten (mit Beschriftung, keine Grafik weiter) vor einer PNG-Grafik positionieren lassen und bei Druck auf diese Taste dann einfach in einem neuen Tab/Fenster 'ne bestimmte Adresse aufrufen. Im Prinzip also nix wirklich komplexes.

    Ich will also aus dem hier:

    Das hier machen:

    Die beiden Tasten sollen entsprechend positioniert (Koordinatenangabe?) werden und beim Klick einfach auf einen hinterlegten Link verweisen. Die Buttons selbst sollen jetzt kein besonderes Design haben - ein "Standard-Button" aus Windows tut's ganz gut.

    Wenn das mit den Tasten nicht geht: Wie kann ich wenigstens normale Links (<a href="ich.bin.eine.adresse.com">Bla</a>) an einer bestimmten Stelle der Webseite positionieren?

    Jetzt ist meine Frage: Wie kann ich sowas als Webseite umsetzen? Laufen muss das Ganze unter Windows XP auf dem IE 7 (oder war's der 8?), im Prinzip steht auch nur HTML oder JavaScript zur Verfügung. Java (7) steht theoretisch auch noch zur Verfügung - allerdings würd' ich's gern vermeiden. Am Liebsten wär's mir, wenn es rein mit HTML ginge :D

    «Ich verstehe Ihre Frage so: Dass es Menschen gibt, die wünschen, dass ein solches OS als "Retro-OS" bezeichnet wird, ja? Mir ist nicht bekannt, dass solche Absichten bestehen, da HP-UX 9.x einfach ein altes OS ist. Niemand hat die Absicht, ein "Retro-OS" zu bauen.» Xaar, 2014

    Prozessor gesucht? -> Prozessoren, die ich abgeben kann (unter "Available for trading")
    "Überschüssige" Prozessoren oder Hardware? -> Einfach PN an mich schicken :b1: -> Hardware, die ich suche

  • Das einzige Problem ist, dass Bilder keine Container-Elemente sind, gegenüber denen man Kindelemente positionieren kann. Man muss den Umweg gehen, das Bild als Hintergrundbild z. B. eines <div>-Tags zu setzen, dann kann man absolute Positionierung (was ein CSS2-Feature ist, aber an sich problemlos von IE6+ unterstützt wird) mithilfe position: absolute und top/left verwenden.

    Dieses Beispiel in JSFiddle

    In der Hinsicht kann man jedes Element auch an einer beliebigen Stelle der Seite festnageln, wenn kein übergeordnetes Element per position: relative eine Ausrichtung vorgibt.

  • Theoretisch müsste es doch reichen, wenn ich die Grafik als Hintergrundbild für die Seite einrichte, oder? Damit dürfte die Positionierung doch relativ zur Seite und damit auch zum Hintergrundbild sein. Also im <head> sowas:

    Code
    <style>
    	body	{ background-image: url("hier_ist_das_Hintergrundbild.png"); }
    </style>

    «Ich verstehe Ihre Frage so: Dass es Menschen gibt, die wünschen, dass ein solches OS als "Retro-OS" bezeichnet wird, ja? Mir ist nicht bekannt, dass solche Absichten bestehen, da HP-UX 9.x einfach ein altes OS ist. Niemand hat die Absicht, ein "Retro-OS" zu bauen.» Xaar, 2014

    Prozessor gesucht? -> Prozessoren, die ich abgeben kann (unter "Available for trading")
    "Überschüssige" Prozessoren oder Hardware? -> Einfach PN an mich schicken :b1: -> Hardware, die ich suche

    Einmal editiert, zuletzt von Xaar (12. Mai 2017 um 21:39)

  • Okay, danke :) Hab' mittlerweile noch eine andere Möglichkeit von shadowtux erhalten:

    https://jsfiddle.net/e90nzzq8/

    Gefällt mir eigentlich ganz gut, die Lösung - auch mit der Möglichkeit von hover und focus (ist noch nicht drin, aber geht ja flott). Muss ich mal etwas rumprobieren, inwiefern der IE7 da mitmachen will.

    «Ich verstehe Ihre Frage so: Dass es Menschen gibt, die wünschen, dass ein solches OS als "Retro-OS" bezeichnet wird, ja? Mir ist nicht bekannt, dass solche Absichten bestehen, da HP-UX 9.x einfach ein altes OS ist. Niemand hat die Absicht, ein "Retro-OS" zu bauen.» Xaar, 2014

    Prozessor gesucht? -> Prozessoren, die ich abgeben kann (unter "Available for trading")
    "Überschüssige" Prozessoren oder Hardware? -> Einfach PN an mich schicken :b1: -> Hardware, die ich suche

    Einmal editiert, zuletzt von Xaar (12. Mai 2017 um 22:06)

  • background-size funktioniert schon mal nicht in IE<9, da es eine CSS3-Eigenschaft ist. IE5-8 brauchen einen DirectX-Filter (oder ein Polyfill, was in diesem Fall aber nur unnötig Javascript hinzufügt) dafür.
    Auf ein paar Kleinigkeiten wie border-radius trifft das auch zu, aber das kannst du in diesem Fall mangels Sichtbarkeit auch ganz entfernen.

  • Warum mangels Sichtbarkeit? border-radius impliziert nicht, dass ein border-style gesetzt ist. Auch ohne einen Border hat man die Rundungen. Inwieweit der IE das dann rund zeigt, hängt natürlich vom IE ab.


  • Warum mangels Sichtbarkeit?

    Ein Radius von 1px ist witzlos, weil man durch einen einzelnen Pixel keinen Kreis zeichnen kann. Selbst mit HiDPI und Zoom erahnt man erst ab 3px, dass sich überhaupt jemand die Mühe gemacht hat, die Ecken abzurunden.

  • Den border-radius hab' ich auf 1px gesetzt - im Original von shadowtux waren's mehr :D

    Ist doch aber erstmal gut zu wissen, was denn theoretisch möglich ist - auch wenn's technisch tlw. veraltet ist. Mir wär's auch lieber, wenn ich 'nen etwas neueren Browser nutzen könnte, aber XP mit IE 7 ist leider der Stand, mit dem ich auskommen muss.

    Das mit dem background-size dürfte auch nicht so problematisch sein - mir reicht eigentlich die Einbindung (also das reine background-image, wie es in #3 steht), da das Hintergrundbild eh größentechnisch auf die zur Verfügung stehende Fläche angepasst sein wird. Wichtig ist nur, dass das Bild nicht irgendwo rumskaliert wird - weil sonst die Positionierung der Buttons nicht hinhaut.

    «Ich verstehe Ihre Frage so: Dass es Menschen gibt, die wünschen, dass ein solches OS als "Retro-OS" bezeichnet wird, ja? Mir ist nicht bekannt, dass solche Absichten bestehen, da HP-UX 9.x einfach ein altes OS ist. Niemand hat die Absicht, ein "Retro-OS" zu bauen.» Xaar, 2014

    Prozessor gesucht? -> Prozessoren, die ich abgeben kann (unter "Available for trading")
    "Überschüssige" Prozessoren oder Hardware? -> Einfach PN an mich schicken :b1: -> Hardware, die ich suche

  • Dann lass das background-size: fill weg. Danach wird es nur in seiner Ursprungsgröße gezeigt, ohne zu scalen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!