onmouseover popup via css-only - tooltips?

  • Hallo ihr Lieben. :)

    Ich hoffe dass Ihr mir ein wenig weiter helfen könnt, den im Moment treibt mich die neue Website in den Wahnsinn.
    Das Prinzip ist eigentlich ganz einfach, die Umsetzung raubt mir dafür den letzten Nerv. Link kann ich derzeit noch nicht reinstellen - ist eine Firmenwebsite und noch nicht startklar, daher hoffe ich dass das so funktioniert. :)

    Und zwar haben wir eine Homepage mit wordpress gebaut und soweit läuft auch alles. Jetzt allerdings möchte ich ein onmouseover per HTML / CSS einbinden. Ich habe dazu zahlreiche Tutorials gefunden, allerdings reichen meine Kenntnisse nicht aus um das alles so aufzubauen wie ich mir das vorstelle.

    Dazu bitte einmal das Bild im Anhang beachten.

    Es gibt 12 dieser Kästchen von denen man aktuell 1 bis 4 auf der Grafik sieht.

    Ein Kästchen besteht aus:

    Code
    <div class="item grid1x1">
    <h2>Text Text 
    1</h2>
    <div class="white">1</div>
    </div>

    Im Prinzip möchte ich nun dass sich, wenn ich mit der Maus über das Kästchen fahre, wie auf der Grafik ein grünes Feld öffnet, mit Pfeil unten links welcher in das entsprechende Kästchen ragt, in welchem man weitere Informationen zu dem Produkt findet, dessen Foto sich eigentlich als Hintergrundbild in den jeweiligen Boxen finden sollte und sich wieder schließt, sobald ich mit der Maus das Kästchen verlasse.

    Das in genau der Art für alle 12 Kästchen - das Kästchen sollte dabei eine fixe Größe haben die ich dann im Nachhinein noch selbst festlegen muss, abhängig davon wie viel Text ich benötige.

    Ich bin auf der Suche nach Tooltips gestoßen, allerdings hat das hinten und vorne nicht gepasst. Ich hatte es zwar irgendwann so weit dass sich ein Popup geöffnet hat, aber nicht dort wo es sollte und der h2-Text der jetzt IN dem Kästchen ist war auf einmal ganz oben auf der Website. Also definitiv nicht da wo er hingehört...
    Außerdem war das eine Lösung per a-tag. Eigentlich nicht das was ich möchte da das onmouseover für den gesamten Container gelten soll - also sowohl wenn ich über das Hintergrundbild fahre als auch wenn ich mit dem Mauszeiger die h2-Schrift berühre.

    Ich hoffe, dass mir hier jemand helfen kann. Ich bin mit meinem Latein nämlich tatsächlich langsam am Ende ._.


    Danke im Voraus und viele Grüße,
    Daisy


    Einmal editiert, zuletzt von gindaisy (6. Juni 2017 um 11:52)

  • Ist nur eine grobe Idee - aber die Funktionalität könnte zu dem passen, was dir vorschwebt.

    Hab diese kleine Datei auch mal zum ausprobieren hochgeladen:
    http://s414653727.online.de/tab_test/pop_ups.html

    if(!sleep)

    {$sheep++;}

  • Hi Sailor und erst mal vielen lieben Dank.
    Auf Deiner Musterseite sieht das schon mal total top aus - muss aber zu meiner Schande gestehen... Dass ich ehrlich gesagt keinen blassen Schimmer habe wie ich das jetzt da auf die Seite einbringe. Die css-Datei ist ausgelagert und so wie Du es nun da geschrieben hast weiß ich zwar wie ich es beispielsweise auf meiner privaten Seite machen würde, aber bei der mit Wordpress gemachten Seite tu ich mich ein wenig schwer.
    Was könnte ich Dir denn schicken damit Du weißt was ich meine...? :)
    Ich bin in Wordpress unter Seiten drin. Und bearbeite da gerade entsprechende Seite auf der die Produkte zu finden sein sollen. Da geht es aber dann gleich los mit den weißen Kästchen etc. - also zum Design selbst oÄ garnichts weiter. Ach... Ich stell mich doof an. Verzeihung... x)

    Viele Grüße,
    Daisy

  • Hallo Daisy,
    leider habe ich von 'Wordpress' keinen blassen Schimmer ;-), da haben wir also was gemeinsam! Ich erstelle meine Webseiten immer 'von Hand' ohne die Verwendung irgendwelcher Webseitenerstellungsprogramme. Darum fällt es mir leicht, mal eben Dinge im Code zu ändern und solche Spielereien auszuprobieren.
    Hast du denn Zugriff auf deine externe css Datei? Könntest du dort von Hand ein paar Zeilen Code einfügen? Eigentlich sollte das mit jedem x-beliebigen Texteditor gehen, denn css Dateien sind reiner Text.
    Etwas schwieriger könnte es sein den Code für die weißen Kästchen in den Quelltext des HTML Dokumentes zu bekommen. Bietet Wordpress die Möglichkeit eigenen HTML Code einzufügen?
    Wenn ja, dann kann ich dir die Elemente, die du benötigst, gerne noch mal näher erklären... wenn dir der Beispielcode aus meinem letzten Beitrag noch nicht ausreicht!

    if(!sleep)

    {$sheep++;}

  • Hi Sailor und danke noch mal :)

    Also die aktuelle Homepage wurde durch eine EDV Firma mit Wordpress erstellt und ich musste hart kämpfen, habe aber inzwischen den vollen Zugriff auf alle Seitendateien sowie die CSS-Datei, ändern kann ich da also jederzeit was. Ich kann Dir auch gern mal den Code der jeweiligen Seite anhängen die es derzeit zu bearbeiten gilt, vielleicht hilft das ja schon weiter.

    Das wäre jetzt der Code wie er aussieht auf der entsprechenden Seite. Bei Bedarf kann ich auch gern die aktuelle CSS noch mit anhängen, sollte das irgendwie nötig sein.

    Bin Dir auf jeden Fall super dankbar für Deine Hilfe!


    Viele Grüße,
    Daisy

  • Guten Morgen Daisy,
    ja, das wäre sehr wichtig, wenn ich die CSS Datei mal sehen könnte, denn alles das, was mit diesem 'Popup' zu tu hat, wird ja durch CSS gesteuert.
    Ist diese Seite schon irgendwo online, dass ich mir sie mal live anschauen kann?

    if(!sleep)

    {$sheep++;}

  • Guten Morgen :)

    Die Seite an sich ist online, nur diese Unterseite natürlich nicht weil die noch komplett im Aufbau und nur mit Mustertext voll ist.
    Die CSS Datei würde ich Dir mal eben per PN zukommen lassen :)


    Viele Grüße,
    Daisy

    Einmal editiert, zuletzt von gindaisy (7. Juni 2017 um 09:53)

  • Hallooooooooho!

    Boah, das ist auf jeden Fall tausend Mal mehr als ich geschafft habe. Funktioniert soweit einwandfrei. Vielen herzlichen Dank dafür! Das einzige Problem was jetzt noch ist: Es passen auf meiner Laptopansicht nicht mehr automatisch 4 der Kästchen nebeneinander. Unten drunter ist ein Bestellformular was die Seite auf bis zu 920px Breite zieht - es würden, so wie vorher auch, locker 4 Kästchen hinpassen - aber nach 3 rückt es automatisch die nächste Zeile an (siehe Screenshot)... Können wir das noch irgendwie hinkriegen? Dann bin ich direkt mal wunschlos glücklich!

    Vielen herzlichen Dank und viele Grüße! :o


  • ja... sehe ich. Ich denke, das liegt an der Formatierung in der CSS Datei Zeile 116++

    Code
    #content .item{
        margin-right: 8px;
        margin-bottom: 8px;
        float: left;
        position: relative;
        overflow: hidden;
    }


    Hier sind/waren die Werte für margin-right und margin-bottom auf 20px gesetzt! Das sorgt für die Abstände zwischen den weißen Boxen.
    Getestet hab ich es jetzt mit 8px ... ob das für deinen Laptop reicht musst du ausprobieren.

    if(!sleep)

    {$sheep++;}

  • Hi!

    Das hat super funktioniert. Sieht absolut klasse aus. Einziges Problem welches sich jetzt noch stellt ist dass ja unter den 12 Kästchen noch andere Kästchen platziert sind.
    Entweder rückt es das 12. Kästchen automatisch eine Reihe tiefer wenn die weiteren Kästchen unten innerhalb des schwarzen Hintergrundes sind, oder die 12 bleibt oben, dafür sind die unteren Kästchen aber außerhalb des Hintergrundes... Siehe Screenshot.
    Ansonsten sieht das super aus so wie es ist!


  • Guten Morgen Daisy,
    als Erstes erkenne ich auf den Screenshots, dass dort ein Fehler sein muss, denn diese Liste mit den weißen Kästchen sollte so funktionieren, dass die Reihen immer aufgefüllt sind - also die gleiche Anzahl von Kästchen pro Reihe. Bei dir sieht es so aus, als hättest du in der vor-vorletzten Reihe 4.. dann 3... dann 1! Soll so nicht sein, erst wenn die oberen Reihen alle gleichmäßig aufgefüllt sind, kann die unterste Reihe mit den restlichen Elementen nur teilweise gefüllt sein. Kann im Moment nicht sagen woran das liegt - aber - in deinem Code sind Fehler!


    Du hast die letzten 4 Boxen vor Ende der Liste mit den 12 weißen Boxen eingefügt .... das </li> und das folgende </ul> gehören nach oben. Vor das <br clear="all">. und dann ist da noch ein einsames </li>, dass da gar nicht hingehört.
    Also so sollte es sein

    Versuche das mal zu ändern und schau, ob sich dadurch was an deinem Fehler 'verbessert'.

    ... ach ja, die Formatierungen, die du da in deinen <div.. benutzt sind grottig 8).
    Besser wäre eine CSS Anweisung in der Form ...<div style="text-align: justify; font-size: 1.5em;">TEXT TEXXT...</div>

    if(!sleep)

    {$sheep++;}

  • So hatte ich es vorher auch. Wenn ich das so mache rückt es aber die unteren Kästchen aus dem schwarzen Hintergrund raus. Dafür sind dann aber alle 4 Kästchen in der letzten Reihe in einer Reihe... :D (erster Screenshot)

    Das mit den DIVs ist ein guter Tipp. Mach ich direkt. Dankeschön! :)

  • Ohne den gesamten Quellcode zu sehen bin ich auf Rätselraten angewiesen.
    Aber der schwarze Hintergrund muss die CSS Eigenschaft eines 'Containers' sein (evtl. ein div) in dem deine Kästchen eingebettet sind. Es könnte sich dabei um ein Element handeln, dass mit der id="content" ausgezeichnet ist. Das schließe ich zumindest aus den Eintragungen in deinem Stylesheet, denn dort werden (fast) alle die im Code vorkommenden Klassen (class="irgendwas") mit dieser vorgestellten ID formatiert.
    Beispiel:

    #content .item{
    ...
    }

    heißt im Klartext, diese Formatierung gilt für alle Elemente mit der Klasse item (class="item"), die sich in einem Element mit der ID content befinden.

    Wenn nun diese content-Element mit dem schwarzen Hintergrund zu früh geschlossen wird - also bevor alle Elemente in diesem Container drin sind, dann liegen eben einige außerhalb des schwarze Hintergrundes :?.
    Welchen Browser benutzt du? Die meisten Browser sind da ganz gut, wenn man solche Fehler suchen muss. Einfach mal Rechtsklick auf die angezeigte Seite im Browser und 'Quellcode anzeigen' auswählen.
    Dann in dem Bereich, wo es zu den Problemen kommt mal genau hinschauen, ob da irgendwas anders aussieht - meist werden die Elemente, die dem Browser fehlerhaft erscheinen farblich (meist rot) markiert. Und dann mit dem Mauszeiger über die Stelle gehen, wo diese Markierung ist. Der Browser zeigt dann an, was ihm fehlerhaft erscheint.

    if(!sleep)

    {$sheep++;}

  • Hi Sailor :)

    Ich habe die Seite eben mal freigeschaltet und würde Dir den Link mal eben per PN zukommen lassen... :) Ich selbst habe jetzt nämlich nichts gefunden. Mir ist nur aufgefallen dass es mit meinem Code von oben geht, also vor /li und /ul...

    Danke für Deine Hilfe!