Hover mit einen Link versehen mit Before und After Elementen - 12Eckenform

  • Hallo zusammen,

    seit mehreren Stunden bzw. Tagen versuche ich ein kleines animierte Hover Element mit einer Verlinkung in CSS/HTML zu programieren.

    Die Animation konnte ich mit ´hover´Funktion zusammen mit ´before´ und ´after´ Psydoelementen herstellen.


    Die Verlinkung schaffe ich irgendwie nicht :(

    Der Text springt immer weg, oder das hover funktioniert dann nicht mehr.


    Vielleicht könnt Ihr helfen...

    Ich habe eine kleine Bildbeschreibung eingefügt.


    Viele Grüße

    Marty




    <!-- DOCTYPE html -->

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <title>12eckenform</title>


    <style>



    /*12eckenform*/


    a.eckenform {

    height: 180px;

    width: 180px;

    background: rgb(9,36,160);


    display: block;

    color:#FFF;


    position: relative;

    float:left;

    margin:40px 90px;

    -moz-border-radius: 30px;

    border-radius: 30px;

    -webkit-box-shadow: 1px 0px 8px rgba(0,0,0,1.7);

    -moz-box-shadow: 1px 0px 8px rgba(0,0,0,1.7);

    box-shadow: 1px 0px 8px rgba(0,0,0,1.7);



    }





    a.eckenform:before {

    z-index:-1;

    height: 100%; /* 180px ursprünglich */

    width: 100%; /* 180px ursprünglich */

    background: rgb(187,187,187);

    content:"";

    position: absolute;

    /* Rotate */

    -moz-transform: rotate(30deg);

    -webkit-transform: rotate(30deg);

    -ms-transform: rotate(30deg);

    -o-transform: rotate(30deg);

    transform: rotate(30deg);

    -moz-border-radius: 30px;

    border-radius: 30px;

    -webkit-box-shadow: 1px 0px 1px rgba(0,0,0,.9);

    -moz-box-shadow: 1px 0px 1px rgba(0,0,0,.9);

    box-shadow: 1px 0px 1px rgba(0,0,0,.9);


    -moz-transform: transition: .01s;

    -webkit-transform: transition: .01s;

    -ms-transform: transition: .01s;

    -o-transform: transition: .01s;


    }




    a.eckenform:after {

    z-index:-1;

    height: 100%; /* 180px ursprünglich */

    width: 100%; /* 180px ursprünglich */

    background: rgb(179,186,215);

    content:"";

    position: absolute;

    /* Rotate */

    -moz-transform: rotate(-30deg);

    -webkit-transform: rotate(-30deg);

    -ms-transform: rotate(-30deg);

    -o-transform: rotate(-30deg);

    transform: rotate(-30deg);

    -moz-border-radius: 30px;

    border-radius: 30px;

    -webkit-box-shadow: 1px 0px 5px rgba(0,0,0,.8);

    -moz-box-shadow: 1px 0px 5px rgba(0,0,0,.8);

    box-shadow: 1px 0px 5px rgba(0,0,0,.8);


    -moz-transform: transition: .01s;

    -webkit-transform: transition: .01s;

    -ms-transform: transition: .01s;

    -o-transform: transition: .01s;


    text-align:center;

    align-items: center;

    justify-content: center;


    }







    a.eckenform:hover {

    cursor: pointer;

    background: rgb(179,186,215);

    color: #0924a0;


    }



    a.eckenform:hover:before {


    -moz-transform: rotate(90deg);

    -webkit-transform: rotate(90deg);

    -ms-transform: rotate(90deg);

    -o-transform: rotate(90deg);

    transform: rotate(90deg);

    cursor: pointer;

    color: #0924a0;


    /* display: none; */

    }




    a.eckenform:hover:after {


    -moz-transform: rotate(0deg);

    -webkit-transform: rotate(0deg);

    -ms-transform: rotate(0deg);

    -o-transform: rotate(0deg);

    transform: rotate(0deg);

    cursor: pointer;


    content: attr(data-title);

    z-index:1;


    margin-left: auto;

    margin-right: auto;

    /*padding: 0; */

    display: flex;

    align-items: center;

    justify-content: center;


    font-size: 1.5em;

    color: #0924a0; /* h2 */

    /* margin-top: 1em; */


    text-align:center;

    font-weight: bold;





    }








    /*Character Styles - Titles*/


    .eckenform h3 {

    position: absolute;

    left:1px;

    right:0px;

    text-align:center;

    /* color:#FFF; */

    /* font-size:20px; */

    display:inline-block;


    font-weight: normal

    }




    .eckenform h3{

    font-family: 'Berkshire Swash', serif;

    margin:15px auto; /* Text hoch runter einstellen */

    text-shadow: 0px 0px 3px rgba(0,0,0,0.6);

    }




    .badges-container {

    margin-left: auto;

    margin-right: auto;


    /*padding: 0; */

    display: flex;

    align-items: center;

    justify-content: center;


    }




    .fett {

    font-weight: bold;

    }










    </style>



    </head>


    <body>


    <div class="badges-container">





    <div class="row">




    <a href="https://www.google.de" class="eckenform" data-title="Mich kontaktieren"></a>



    <h3 class="vorher">Hallo, <span class="fett">die Preise </span>sind<br>hier.<br><br>

    Interessiert?<br>

    <span class="fett">Bitte hier klicken!</span></h3>


    </div>





    </body>

    </html>

  • Hallo,


    ja genau als erstes soll die Schrift "hier sind die preise" erscheinen.

    Anschließend wenn man mit der Maus drauf geht dann wird die dunkelblaue box zur hellblauen box, die um 30Grad gedreht boxen verschwinden und es erscheint dann "bitte kontaktieren".


    Grüße!

  • * Link entfernt , weil existiert nicht mehr *

    Ich hoffe, das ist gut so.

    Gleicher Effekt und weit über 100 Zeilen weniger.

    Brauch vielleicht noch paar fein Abstimmungen ,aber habe so weit wie möglich deine Einstellungen behalten

  • Hejj,


    sieht echt gut aus!

    Bist echt ein Profi :)


    Kannst du das auch so machen, wenn man auf die Hellblaue Box klickt, öffnet sich der Link?

    Wäre besser, wenn man mit der Maus auf die Hellblau Box klickt, um den Link zu öffnen, anstatt auf "Mich kontaktieren" klicken.

  • Hi,

    ich glaube durch "display:block;" könnte das gehen, dass die Hellblaue Box/Div klickbar ist.

    Ich habe es unter .container und #eins gesetzt, klappt leider nicht ...

  • Profi bin ich noch lange nicht,aber ich arbeite dran:)

    Die Box zuverlinken ?

    So sehe ich da nur ein weg mit javascript. Wenn das ok ist?

    Ohne Javascript wüßte ich jetzt auf der schnelle kein weg.Wahrscheinlich habe ich wieder aussetzter im Kopf oder so?

    Ich gehe mal gerade etwas goggeln, fals ich nix finde mache ich es mit Javascript

  • Perfekt, vielen Dank!!!


    Ich werde mir noch paar VHS Stunden für CSS gönnen :D


    Frage von einem Anfänger noch, was bedeutet das ~ beim:

    #eins:hover~div{

    display:none;

    }


    ??


    und was bedeutet das > beim:

    #eins:hover>a{

    display:block;

    }


    ??


    Vielen Dank nochmal und viele Grüße!!

  • Und noch die letzte Frage,

    dieses "data-title="Mich kontaktieren"" kann es sein das man das hier nicht braucht?

    Weil es wird auch kein "attr(data-title)" angesprochen ?

    Kann man anstatt "data-title="Mich kontaktieren" auch etwas anderes schreiben?


    Viele Grüße!

  • Zum üben

    https://wiki.selfhtml.org/wiki/CSS/Selektoren

    Aber trotzdem

    Das > heist Kindselector und heist zb

    Das ~ heist Geschwister Element zb

    Code
    <div>Bruder</div>
    <div>Bruder</div>
    <div>Bruder<div>Ich spiele nicht mit</div>
    </div>
    wenn du 
    div ~ div
    schreibst würdest du 2 Brüder  ansprechen

    Dann gibt es noch + ( Nachbarn )was die Brüder theoretisch auch wären.

    Hoffe habe es halbwegs erklären können.Kuck dir mal den Link an,da steht es nochmal genauer drinne.


    Das data-title brauchst du in diesen fall nicht.

    Das nimmt man wenn man zb links oder andere informationen speichern willst ,bzw später mal drauf zugreifen .So wie du es hattest ,geht es natürlich auch.

    Du kannst nach data alles schreiben was du willst eigentlich.

    data-hallo

    data-dasistwichtig.

    wie weit da drin Sonderzeichen erlaubt sind weiß ich nicht.Ich würde lieber bei den Bindestrich bleiben ,dann bist du auf der sicheren Seite.


    EDIT

    Man hätte den div auch so verlinken können.

    Code
    <div onclick="location.href='url.html';">bladiv</div>

    Aber sowas fällt mir erst ein wenn ich es nicht mehr brauch.

    Hatte da mal wieder Loch imKopf

  • Vielen Dank für die Info!


    Den div werde ich morgen/übermorgen einfügen, melde mich wenn es geklappt hat.

    <div onclick="location.href='url.html';">bladiv</div>


    Schönen Abend noch und Grüße!

  • Hej Basti,


    ich habe die Zeile <div onclick="location.href='url.html';">bladiv</div> in

    <a onclick="location.href='https://www.google.de';">Mich kontaktieren</a> umgewandelt und unten in den Code unten eingefügt, s Screenshot.

    Ergebnis ist leider nicht was erwartet sein sollte.


    Kannst du das bitte in dieser in den Code einfügen in der Form <div onclick="location.href='url.html';">bladiv</div> ?


    Das mit dem Kind und Geschwisterselector muss ich echt üben.

    Weiter als Klassen und ID bin ich leider noch nicht :D



    html-seminar.de/woltlab/attachment/1496/

  • Das war nicht ganz richtig.

    Ich meinte das so

    * Link entfernt , weil existiert nicht mehr *

    Weil wir wollten ja den ganzen Container verlinken und nicht den Link ,der sowieso das macht, was von ihm verlangt wird.

    Aber so gehts ,habe die CSS Datei auch etwas ändern müssen, achte darauf, wenn du es bei dir dann ändern tust.

  • <!DOCTYPE HTML>

    <html lang="de">

    <head>

    <title>12eckenform</title>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <meta charset="utf-8">

    <meta name=viewport content="width=device-width, initial-scale=1">

    <style>

    #all{

    margin-left:80%;

    padding-top:2%;

    }

    .container{

    position: absolute;

    height: 180px;

    width: 180px;

    -moz-border-radius: 30px;

    border-radius: 30px;

    }



    #all2{

    margin-left:80%;

    padding-top:15%;

    }

    .container{

    position: absolute;

    height: 180px;

    width: 180px;

    -moz-border-radius: 30px;

    border-radius: 30px;

    }


    #zwei{

    z-index:2;

    background: rgb(187,187,187);

    -moz-transform: rotate(30deg);

    -webkit-transform: rotate(30deg);

    -ms-transform: rotate(30deg);

    -o-transform: rotate(30deg);

    transform: rotate(30deg);

    -moz-border-radius: 30px;

    border-radius: 30px;

    -webkit-box-shadow: 1px 0px 1px rgba(0,0,0,.9);

    -moz-box-shadow: 1px 0px 1px rgba(0,0,0,.9);

    box-shadow: 1px 0px 1px rgba(0,0,0,.9);

    -moz-transform: transition: .01s;

    -webkit-transform: transition: .01s;

    -ms-transform: transition: .01s;

    -o-transform: transition: .01s;

    }



    #drei{

    z-index:1;

    background: rgb(179,186,215);

    -moz-transform: rotate(-30deg);

    -webkit-transform: rotate(-30deg);

    -ms-transform: rotate(-30deg);

    -o-transform: rotate(-30deg);

    transform: rotate(-30deg);

    -moz-border-radius: 30px;

    border-radius: 30px;

    -webkit-box-shadow: 1px 0px 5px rgba(0,0,0,.8);

    -moz-box-shadow: 1px 0px 5px rgba(0,0,0,.8);

    box-shadow: 1px 0px 5px rgba(0,0,0,.8);

    -moz-transform: transition: .01s;

    -webkit-transform: transition: .01s;

    -ms-transform: transition: .01s;

    -o-transform: transition: .01s;

    }


    #eins{

    z-index:3;

    background: rgb(9,36,160);

    color:#FFF;

    -webkit-box-shadow: 1px 0px 8px rgba(0,0,0,1.7);

    -moz-box-shadow: 1px 0px 8px rgba(0,0,0,1.7);

    box-shadow: 1px 0px 8px rgba(0,0,0,1.7);

    text-align:center;

    align-items: center;

    justify-content: center;

    }


    #eins:hover {

    cursor: pointer;

    background: rgb(179,186,215);

    color: #0924a0;

    }


    #eins:hover~div{

    display:none;

    }

    #eins:hover>.preise{

    display:none;

    }

    #eins:hover>p.link{

    display:block;

    }

    p.link{

    display:none;

    }


    p.link{


    text-align:center;

    font-size: 1.5em;

    color: #0924a0;

    padding-top:40px;

    font-weight: bold;

    }


    #eins .preise {

    text-align:center;


    font-weight: 300;

    font-family: 'Berkshire Swash', serif;

    margin:35px auto;

    text-shadow: 0px 0px 3px rgba(0,0,0,0.6);

    }

    .fett {

    font-weight: 900;

    }


    #bastilink{

    text-align:center;

    width:300px;

    font-size:20px;

    display:block;

    position:absolute;

    left:calc(50% - 150px);

    bottom:50px;

    }


    .form {


    float: left;

    shape-outside: circle(50%);

    width: 95%;

    height: 5%;


    }



    </style>

    </head>

    <body>






    <div>


    <p class="form">

    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.


    Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.


    Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.


    Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.


    Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.


    At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.


    Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus.


    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.


    Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.


    Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.


    Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo








    </p>




    <div id="all">

    <div id="eins" class="container" onclick="location.href='https://www.google.de'">

    <p class="preise">Hallo, <span class="fett">die Preise </span>sind<br>hier.<br><br>

    Interessiert?<br>

    <span class="fett">Bitte hier klicken!</span></p>

    <p class="link" data-title="Mich kontaktieren">Mich kontaktieren</p>

    </div>

    <div id="zwei" class="container"></div>

    <div id="drei" class="container"></div>

    </div>



    <div id="all2">

    <div id="eins" class="container" onclick="location.href='https://www.google.de'">

    <p class="preise">Hallo, <span class="fett">die Preise </span>sind<br>hier.<br><br>

    Interessiert?<br>

    <span class="fett">Bitte hier klicken!</span></p>

    <p class="link" data-title="Mich kontaktieren">Mich kontaktieren</p>

    </div>

    <div id="zwei" class="container"></div>

    <div id="drei" class="container"></div>

    </div>










    </div>




    </body>

    </html>






    html-seminar.de/woltlab/attachment/1500/

  • Hallo Basti,


    habe versucht das 12Eckenelement mit einem Text umfließen zu lassen.

    Leider habe ich diese nicht geschafft :(


    Kannst du mir bitte helfen, ich versuche es schon den ganzen Tag.

    Der Code ist oben, habe auch ein Bild eingefügt.

  • Also zwei 12Eckenelemente sind unterhalb und der Text Lorem ipsum wird umfließt die Elemente.

    (Ich hatte Lorem Ipsum kürzen müssen, waren nur 1000 Zeichen erlaubt hier.)

    Grüße!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!