CSS/Eigenschaften/Textformatierung/text-shadow

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Eigenschaft text-shadow ermöglicht Ihnen die Darstellung von Schatten unter Texten, ohne dabei Bilder zu verwenden.

  • CSS 3.0
  • Chrome
  • Firefox
  • IE 10
  • Opera
  • Safari

Funktionsweise[Bearbeiten]

Beispiel ansehen …
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>text-shadow</title>
    <style>
      body            { width: 30em; font-family: arial; background-color: #f4f4f4;}
      h1              { text-align: center; margin-top: 50px; letter-spacing: 1em; color: white; font-size: 72px; }
      h1 .rot         { text-shadow: -15px -25px 10px red, 0 -40px 10px green, 15px -25px 10px blue; }
      h1 .grün        { text-shadow: 0 -40px 10px green, -15px -25px 10px red, 15px -25px 10px blue; }
      h1 .blau        { text-shadow: 15px -25px 10px blue, -15px -25px 10px red, 0 -40px 10px green; }
      p               { line-height: 1.5em; }
      p span          { font-weight: bold; }
      p .rot          { color: red; text-shadow: -2px -2px 2px red; }
      p .grün         { color: green; text-shadow: 0 -2px 2px green; }
      p .blau         { color: blue; text-shadow: 2px -2px 2px blue; }
      .inherited      { text-shadow: 2px -2px 2px grey; }
      .inherited span { text-shadow: none; }
    </style>
  </head>
  <body>
    <!-- #1# -->
    <h1><span class="rot">r</span><span class="grün">g</span><span class="blau">b</span></h1>

    <!-- #2# -->
    <p>rgb ist die Abkürzung für einen Farbraum, der die Farben durch das Mischen der drei Grundfarben 
       <span class="rot">rot</span>, <span class="grün">grün</span> und <span class="blau">blau</span> bildet.</p>

    <!-- #3# -->
    <p class="inherited">Dieser Absatz soll die <span>Vererbung</span> demonstrieren.</p>
  </body>
</html>
  1. Sie können für ein Element mehrere Schatten definieren. Die Schatten werden dabei in umgekehrter Reihenfolge der Definition „gestapelt“, das heißt, der zuerst festgelegte überdeckt die anderen.
  2. Firefox setzt bei fehlender Farbangabe die Schriftfarbe des Elements als Schattenfarbe.
  3. Um die Vererbung zu unterbinden, kann man text-shadow: none; verwenden.
  • Um text-shadow darzustellen, werden folgende Angaben benötigt:
    • Die beiden ersten Werte bestimmen den horizontalen bzw. vertikalen Abstand des Schattens vom Element. Erlaubt ist eine Längen- jedoch keine Prozentangabe.
    • Mit dem dritten Wert lässt sich ein Weichzeicheneffekt darstellen, 0 entspricht einer scharfen Darstellung. Erlaubt ist eine nicht negative Längenangabe.
    • eine Farbangabe
  • Mehrere Schatten für einen Text werden durch Kommata getrennt.
  • Erlaubt ist zudem die Angabe none.
Beachten Sie: Die Angaben für den Textschatten eines Elements werden ohne Ihr Zutun an die Kindelemente vererbt.
Beachten Sie: Um in älteren Versionen des Internet-Explorer einen ähnlichen Effekt zu erreichen, kann auf die Filter-Klasse filter:DropShadow() zurückgegriffen werden.
Empfehlung: Verwenden Sie Textschatten gezielt und sparsam. Die meisten Menschen haben ein intuitives Gefühl für Lichtverhältnisse. Im Allgemeinen kommt Licht beim Lesen von einer Leselampe von links oben auf den Text und der Schatten fällt dann nach rechts unten. Stellen Sie sicher, dass ihre Schatten immer von einer (gedachten) Lichtquelle kommen. Schatten, die in mehrere Richtungen gehen, wirken unruhig und nicht stimmig.

Anwendungsbeispiele[Bearbeiten]

Texteffekt: 3D-Look[Bearbeiten]

Mit der CSS-Eigenschaft text-shadow kann man erstaunliche Text-Effekte erzeugen. Durch eine Kombination mehrerer Schatten entsteht so ein dreidimensionaler Eindruck.

Beispiel ansehen …
p {
  font: bold 5em Helvetica, Arial, Sans-Serif;
  padding: .2em;
  margin: 0;	
}
 
#eins {
  color: yellow;
  text-shadow: 
    1px 1px blue, 
    2px 2px blue, 
    3px 3px blue;
  transition: all .12s ease-out;
}
#eins:hover {
  position: relative; top: -3px; left: -3px; 
  text-shadow: 
    1px 1px blue, 
    2px 2px blue, 
    3px 3px blue, 
    4px 4px blue, 
    5px 5px blue, 
    6px 6px blue;
}
 
#zwei {
  text-shadow: 
    1px -1px 0 hsla(0, 0%, 50%, 1),
    2px -2px 0 hsla(0, 0%, 55%, 1),
    3px -3px 0 hsla(0, 0%, 60%, 1),
    4px -4px 0 hsla(0, 0%, 65%, 1),
    5px -5px 0 hsla(0, 0%, 70%, 1),
    6px -6px 0 hsla(0, 0%, 75%, 1),
    7px -7px 0 hsla(0, 0%, 80%, 1),
    8px -8px 0 hsla(0, 0%, 85%, 1),
    9px -9px 0 hsla(0, 0%, 90%, 1);
}

Im ersten Beispiel wird der Textschatten bei :hover um 3px vergrößert und der Text entsprechend nach links oben verschoben. Der Schatten ist einfarbig.

Einen realistischeren 3D-Effekt können Sie erreichen, wenn Sie die Farbangaben in den verschiedenen Lagen des Textschattens allmählich verdunkeln. Dies wird durch die Verwendung der hsla-Farbwerte deutlich.

Texteffekt: Umriss[Bearbeiten]

Eigentlich gibt es für einen Text, bei dem nur der Umriss zu sehen sein soll, die CSS3-Eigenschaft text-outline, die jedoch noch nicht unterstützt wird, sowie die proprietäre Eigenschaft -webkit-text-stroke, die jedoch nur von den Webkit-Browsern interpretiert wird.

Man kann diesen Schritt aber auch mit text-shadow erreichen:

Beispiel ansehen …
#zwei {
  text-shadow:  
     1px  1px 1px black,
     1px -1px 1px black,
    -1px  1px 1px black,
    -1px -1px 1px black;
}
#drei {
  font-family: Chewy;
  color: yellow ;
  text-transform: uppercase;
  letter-spacing: .1em;
  text-shadow: 
     1px  1px 1px black,
     1px -1px 1px black,
    -1px  1px 1px black,
    -1px -1px 1px black;
}

Im zweiten Beispiel werden vier Schatten jeweils links oben, rechts oben, rechts unten und links unten platziert, sodass die Schrift einen gleichmäßigen Umriss- oder outline-Look erhält.

Im dritten Beispiel wird ein Google Font eingebunden, der mit letter-spacing und text-transform: uppercase gestaltet wird.

Texteffekt: Neon[Bearbeiten]

Mit text-shadow kann man auch eindrucksvolle Neon-Effekte erzielen:

Beispiel ansehen …
#zwei {
  text-shadow:  
     1px  1px 1px black,
     1px -1px 1px black,
    -1px  1px 1px black,
    -1px -1px 1px black;
}
#drei {
  font-family: Chewy;
  color: yellow ;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-shadow:  
     1px  1px 1px black,
     1px -1px 1px black,
    -1px  1px 1px black,
    -1px -1px 1px black;
}

Benutzen Sie text-shadow um das Leuchten langsam aufzubauen:

  • Der erste Schatten sollte die Textfarbe haben.
  • Die folgenden Schatten können in einer gewählten Farbe sein, ohne horizontalen bzw. vertikalen Abstand des Schattens vom Element. Der Weichzeicheneffekt (blur) sollte stetig vergrößert werden (je mehr Schatten Sie verwenden, desto stärker das Leuchten)

Die dritte Neon-Reklame funktioniert nicht richtig - animation sorgt für ein Flackern.

siehe auch[Bearbeiten]

Weblinks[Bearbeiten]