webmatze.de

Profi Tipps für einen erfolgreichen Internetauftritt

Schatten mit CSS Pseudo-Elementen hinzufügen

| Keine Kommentare

In diesem Beitrag möchte ich euch zeigen, wie man mit ganz einfachen Mitteln einen Schatteneffekt an beliebige Block-Elemente hinzufügen kann. Der Clou dabei ist jedoch, dass dafür kein HTML angefasst werden muss, sondern dies ausschließlich über normale CSS Mittel funktioniert.

Ja klar, werden jetzt einige rufen. Dafür kann man ja einfach die CSS Deklaration box-shadow verwenden! Richtig. CSS3 erlaubt es seit einiger Zeit, mit box-shadow schöne Schatteneffekte an beliebige HTML Elemente zu zaubern und ist dabei ziemlich flexibel.

Aber leider ist es wie mit vielen neuen Dingen - einige Browser unterstützen es noch nicht, oder nur mit speziellen Browserprefixen wie -moz-, -o- oder -webkit-. Dies bedeutet, man muss diese Deklaration für jeden Browser in seiner speziellen Schreibweise wiederholen und bläst damit sein Stylesheet unnötig auf. Und selbst dann werden ältere Browser wie IE8 (und niedriger) oder Opera 10.10 (oder niedriger) nicht unterstützt.

Aus diesem Grund möchte ich euch eine weitere Möglichkeit vorstellen, wie man noch einen Schatten erstellen kann.

Gestatten, Pseudo-Elemente :before und :after

CSS2 bietet schon seit einiger Zeit die Möglichkeit mit Hilfe der Pseudo-Elemente :before und :after Inhalte vor bzw. nach Elementen per CSS hinzuzufügen. So lässt sich zum Beispiel mit folgender Anweisung vor allen Link-Elementen ein Text hinzufügen:

  1. a:before {content: "Ich bin ein Link: "}

Und das alles, ohne etwas am HTML selbst ändern zu müssen. Und ein weiterer Vorteil für uns ist, dass diese Pseudo-Elemente auch schon von einigen älteren Browserversionen unterstützt werden und zudem noch ohne spezielle Prefixe auskommen.

Wie entsteht nun der Schatteneffekt?

Wir nutzen den Umstand, dass der so hinzugefügte Text vom Browser als Block-Element behandelt wird, wenn dieser auch auf ein Block-Element angewandt wird. Er verhält sich also genau so, als wenn wir ein neues DIV-Element hinzugefügt hätten.

Wenn wir dieses Element nun noch mit einer Hintergrundfarbe versehen und entsprechend positionieren, können wir so einen passablen Schatteneffekt erzeugen. Wie genau dies aussieht, könnt ihr nun (endlich) hier sehen:

Diese Box hat einen schönen Schatten. Wenn Ihr mit der Maus darüberfahrt, seht ihr auch, dass sich der Schatten der Größe der Box anpasst.

Da habt ihr es. Ist der Schatten nicht schön?

Jetzt werde ich euch noch schnell den dazu notwendigen Code zeigen und schon steht euch nichts mehr im Wege, um solche Schatten selbst in euren Seiten zu verwenden.

Hier das HTML:

  1.  
  2. <div id="box" class="shadowme">Diese Box hat einen schönen Schatten.
  3. Wenn Ihr mit der Maus darüberfahrt, seht ihr auch,
  4. dass sich der Schatten der Größe der Box anpasst.</div>
  5.  

Und hier das entsprechende CSS:

  1.  
  2. #box {
  3. background-color: green;
  4. position: relative;
  5. width: 50%;
  6. text-align: center;
  7. margin: 0px auto;
  8. padding: 10px;
  9. color: #fff;
  10. font-family: sans-serif;
  11. margin-bottom: 20px;
  12. }
  13. #box:hover {
  14. font-size: 150%;
  15. }
  16. .shadowme:after {
  17. content: "";
  18. background-color: lightGrey;
  19. position: absolute;
  20. bottom: -5px;
  21. right: -5px;
  22. width: 100%;
  23. height: 5px;
  24. }
  25. .shadowme:before {
  26. content: "";
  27. background-color: lightGrey;
  28. position: absolute;
  29. top: 5px;
  30. right: -5px;
  31. width: 5px;
  32. height: 100%;
  33. }

Ich wünsche Euch viel Spaß damit und bei Fragen oder Hinweisen könnt ihr gerne die Kommentarfunktion verwenden. :)

Diese Artikel könnten dich auch interessieren: