Farbe auf HTML-Elemente mit CSS anwenden
Mit CSS gibt es viele Möglichkeiten, Farbe zu Ihren HTML Elementen hinzuzufügen, um das gewünschte Aussehen zu erzielen. Dieser Leitfaden ist eine Einführung, wie CSS verwendet werden kann, um Farben auf HTML-Elemente anzuwenden. Dieser Leitfaden enthält Listen von CSS-Eigenschaften, die Farbe in ihren Werten setzen und wie man Farben sowohl in Stylesheets als auch auf andere Arten verwendet.
Hinweis: Es ist wichtig, Farben weise zu verwenden. Wählen Sie immer geeignete Farben aus, stellen Sie sicher, dass der Kontrast zwischen Text und Hintergrund ausreichend ist, um die Lesbarkeit zu gewährleisten, und berücksichtigen Sie immer die Bedürfnisse von Menschen mit unterschiedlichen visuellen Fähigkeiten.
Um mehr über CSS-Farben als Datentyp zu erfahren, sehen Sie sich die Referenz zum CSS <color>
Datentyp und den Leitfaden zu CSS-Farbwerten an.
Eigenschaften, die Farbe haben können
Auf Elementebene kann in HTML alles Farbe erhalten. Lassen Sie uns die verschiedenen Elemente betrachten, die auf der Seite gerendert werden — wie Text, Ränder usw. Wir werden Listen der CSS-Eigenschaften bereitstellen, die Farbe auf jedes anwenden.
Auf einer grundlegenden Ebene definiert die color
-Eigenschaft die Vordergrundfarbe des Inhalts eines HTML-Elements und die background-color
-Eigenschaft definiert die Hintergrundfarbe des Elements. Diese können auf nahezu jedes Element angewendet werden.
Text
Immer wenn ein Element gerendert wird, werden diese Eigenschaften verwendet, um die Farbe des Textes, seinen Hintergrund und jegliche Dekorationen auf dem Text zu bestimmen.
color
-
Die Farbe, die beim Zeichnen des Textes und aller Textdekorationen verwendet wird (wie das Hinzufügen von Unter- oder Überstrichen, Durchstreichlinien usw.).
background-color
-
Die Hintergrundfarbe des Textes.
text-shadow
-
Konfiguriert einen Schatteneffekt, der auf den Text angewendet wird. Zu den Optionen für den Schatten gehört die Basisfarbe des Schattens (die dann basierend auf den anderen Parametern mit dem Hintergrund verschwommen und vermischt wird). Weitere Informationen finden Sie unter Textschlagschatten.
text-decoration-color
-
Die Standardfarben der Textdekorationen (wie Unterstreichungen, Durchstreichungen usw.) ist
currentcolor
. Dieses Schlüsselwort repräsentiert den aktuellen Wert dercolor
-Eigenschaft. Sie können diesen Wert jedoch überschreiben und mit dertext-decoration-color
-Eigenschaft eine andere Farbe verwenden. text-emphasis-color
-
Die Farbe, die verwendet wird, wenn Hervorhebungssymbole neben jedem Zeichen im Text gerendert werden. Dies wird hauptsächlich beim Zeichnen von Text für ostasiatische Sprachen verwendet.
caret-color
-
Die Farbe, die beim Zeichnen des Cursors (manchmal als Texteingabecursor bezeichnet) innerhalb des Elements verwendet wird. Dies ist nur in editierbaren Elementen nützlich, wie
<input>
und<textarea>
oder Elemente, deren HTML-Attributcontenteditable
auftrue
gesetzt ist.
Boxen
Jedes Element ist eine Box mit einer Art Inhalt und hat einen Hintergrund und einen Rand zusätzlich zu dem, was die Box auch enthalten mag.
- Ränder
-
Siehe den Abschnitt Ränder für eine Liste der CSS-Eigenschaften, mit denen Sie die Farben der Ränder einer Box festlegen können.
background-color
-
Die Hintergrundfarbe, die in Bereichen des Elements verwendet wird, die keinen Vordergrundinhalt haben.
box-shadow
-
Konfiguriert Einsetzschatten- und Schlagschatteneffekte auf der Box. Zu den Optionen für jeden Schatten gehört die Basisfarbe des Schattens (die dann basierend auf den anderen Parametern mit dem Hintergrund verschwommen und vermischt wird).
column-rule-color
-
Die Farbe, die beim Zeichnen der Linie verwendet wird, die Textspalten trennt, wenn das CSS-Multisäulen-Layout verwendet wird.
outline-color
-
Die Farbe, die beim Zeichnen einer Umrandung um die Außenseite des Elements verwendet wird. Diese Umrandung unterscheidet sich vom Rand darin, dass ihr im Dokument kein Platz zugewiesen wird. Umrandungen nehmen nicht am Boxmodell teil, sondern überlagern andere Inhalte. Umrandungen werden im Allgemeinen als Fokusindikatoren verwendet, um anzuzeigen, welches Element derzeit den Fokus hat und Tastatureingaben empfängt.
Ränder
Jedes Element kann einen um sich herum gezeichneten Rand haben. Ein einfacher Elementrand ist eine Linie, die um die Kanten des Inhalts des Elements gezeichnet wird. Siehe Das Boxmodell, um mehr über die Beziehung zwischen Elementen und ihren Rändern zu erfahren, und den Artikel Ränder mit CSS stylen, um mehr über das Anwenden von Styles auf Ränder zu erfahren.
Sie können die Kurzschreibweise für die Eigenschaft border
verwenden, die es Ihnen ermöglicht, alles über den Rand in einem Schritt zu konfigurieren (einschließlich nicht-farblicher Merkmale von Rändern, wie ihre Breite, Stil (solid, gestrichelt usw.), und so weiter).
border-color
Kurzschreibweise-
Gibt eine einzige Farbe an, die für jede Seite des Randes des Elements verwendet werden soll.
border-left-color
,border-right-color
,border-top-color
, undborder-bottom-color
-
Ermöglicht das Setzen der Farbe der entsprechenden Seite des Randes des Elements.
border-block-start-color
undborder-block-end-color
-
Damit können Sie die Farbe festlegen, die verwendet wird, um die Ränder zu zeichnen, die am nächsten zum Anfang und Ende des Blocks sind, den der Rand umgibt. In einem Links-nach-Rechts-Schreibmodus (wie er in Englisch geschrieben wird) ist der Startblockrand die obere Kante und das Blockende ist die untere Kante. Dies unterscheidet sich von den Inline-Start- und Endkanten, die die linken und rechten Ränder sind (entsprechend dort, wo jede Textzeile in der Box beginnt und endet).
border-inline-start-color
undborder-inline-end-color
-
Diese lassen Sie die Ränder einfärben, die am nächsten zum Anfang und Ende der Linien im Textkasten sind. Welche Seite dies ist, hängt von den Eigenschaften
writing-mode
,direction
undtext-orientation
ab, die typischerweise (aber nicht immer) verwendet werden, um die Textrichtung basierend auf der Sprache anzupassen, die angezeigt wird. Wenn zum Beispiel der Text der Box von rechts nach links gerendert wird, wird dieborder-inline-start-color
auf die rechte Seite des Randes angewendet.
Spezifizieren von Farben als Werte in Stylesheets
Nun, da Sie wissen, welche CSS-Eigenschaften das Anwenden von Farben auf Elemente ermöglichen, können Sie anfangen, Farben zu Ihren Websites hinzuzufügen. Lassen Sie uns einige Beispiele für die Verwendung von Farbe innerhalb eines Stylesheets betrachten. In diesem Beispiel verwenden wir mehrere zuvor erwähnte Eigenschaften, wobei das Konzept des Farbauftragens in CSS dasselbe bleibt, egal welche Eigenschaft.
Lassen Sie uns zuerst das Ergebnis betrachten, bevor wir uns den benötigten Code ansehen:
HTML
Das HTML, das für die Erstellung des obigen Beispiels verantwortlich ist, wird hier gezeigt:
<div class="wrapper">
<div class="boxLeft">
<p>This is the first box.</p>
</div>
<div class="boxRight">
<p>This is the second box.</p>
</div>
</div>
Hier haben wir ein Wrapper-<div>
, das zwei Kind-<div>
s enthält, von denen jedes einen einzelnen Kind-Absatz (<p>
) hat. Jedes Inhalts-<div>
erhält ein anderes Aussehen.
CSS
Lassen Sie uns das CSS betrachten, das das obige Ergebnis Stück für Stück erstellt.
Hinweis: Wir verwenden in diesem Beispiel mehrere verschiedene CSS-Farbwerttypen, um deren Verwendung zu demonstrieren. Dies wird für Produktionscode nicht empfohlen. Beim Schreiben von CSS verwenden Sie den am intuitivsten Wertetyp für Sie und Ihr Team.
.wrapper {
height: 110px;
padding: 10px;
display: flex;
gap: 10px;
text-align: center;
font:
28px "Marker Felt",
"Zapfino",
cursive;
border: 6px solid mediumturquoise;
}
div {
flex: 1;
}
Die .wrapper
-Klasse wird verwendet, um die Styles auf das <div>
zuzuweisen, das unseren gesamten anderen Inhalt umschließt. Dies legt die Höhe des Containers unter Verwendung von height
fest, wodurch die Breite dieses Block-Elementes standardmäßig 100% seines Elternteils beträgt. Mit der Einstellung von display
auf flex
und einem 10px
gap
wird ein Flex-Container erstellt, um die Kinder nebeneinander mit einem Abstand zwischen allen Kindern des Containers anzuordnen. Wir verwenden flex
, um die Flex-Kinder wachsen zu lassen, um den Container zu füllen. Es betrifft nicht den Flex-Container selbst.
Von größerem Interesse für unsere Diskussion hier ist die Verwendung der border
-Eigenschaft, um einen Rand um den äußeren Rand des Elements zu schaffen. Dieser Rand ist eine durchgezogene Linie, 6 Pixel breit, in der benannten Farbe mediumturquoise
.
Innerhalb unseres Wrappers haben wir ein linkes und ein rechtes Kästchen.
.boxLeft {
background-color: rgb(245 130 130);
outline: 2px solid darkred;
}
Die .boxLeft
-Klasse, die verwendet wird, um das Kästchen auf der linken Seite zu stylen, legt die Farbe des Hintergrunds und der Umrandung fest:
- Die Hintergrundfarbe des Kästchens wird durch Ändern des Wertes der CSS-Eigenschaft
background-color
aufrgb(245 130 130)
, unter Verwendung derrgb()
-Funktionsnotation, eingestellt. - Eine Umrandung wird für das Kästchen definiert. Im Gegensatz zum häufiger verwendeten
border
beeinflusstoutline
das Layout überhaupt nicht; es zeichnet sich über alles, was sich zufällig außerhalb des Box des Elements befindet im Gegensatz dazu, wieborder
Platz macht. Diese Umrandung ist eine durchgezogene, dunkelrote Linie, die zwei Pixel dick ist. Beachten Sie die Verwendung des Schlüsselwortesdarkred
, wenn Sie die Farbe angeben. - Beachten Sie, dass wir die Textfarbe nicht explizit einstellen. Das bedeutet, dass der Wert von
color
vom nächsten enthaltenen Element, das sie definiert, geerbt wird. Standardmäßig ist das Schwarz.
.boxRight {
background-color: hwb(270deg 63% 13%);
outline: 4px dashed #6e1478;
color: hsl(0deg 100% 100%);
text-decoration-line: underline;
text-decoration-style: wavy;
text-decoration-color: #8f8;
text-decoration: underline wavy #8f8;
text-shadow: 2px 2px 3px black;
}
Hinweis:
Wir haben die text-decoration-*
-Styles separat eingefügt, da Safari text-decoration
nicht als Kurzschreibweise unterstützt.
Schließlich setzt die .boxRight
-Klasse verschiedene Styles auf dem Kästchen, das rechts gezeichnet wird. Dann werden die folgenden Farben festgelegt (unter Verwendung von fünf verschiedenen Möglichkeiten zur Deklaration von Farbwerten):
- Die
background-color
wird mithilfe derhwb()
-Funktionsnotation eingestellt —hwb(270deg 63% 13%)
. Dies ist eine mittelviolette Farbe. - Die
outline
des Kästchens wird verwendet, um anzugeben, dass das Kästchen in einer vier Pixel dicken gestrichelten Linie eingeschlossen sein soll, deren Farbe ein etwas tieferes Violett ist, mithilfe des sechsstelligen<hex-color>
#6e1478
. - Die Vordergrundfarbe (Textfarbe) wird durch das Setzen der
color
-Eigenschaft unter Verwendung derhsl()
-Funktionsnotation —hsl(0deg 100% 100%)
, angegeben. Dies ist eine von vielen Möglichkeiten, die Farbe Weiß zu spezifizieren. - Wir fügen eine grüne gewellte Linie unter dem Text mit der
text-decoration
-Kurzform hinzu, zusammen mit der Langformkomponente für die Browser-Kompatibilität. Wir haben die 3-stellige<hex-color>
#8f8
verwendet, was dem#88ff88
entspricht. - Zum Schluss wird mit der Verwendung von
text-shadow
ein kleiner Schatten auf den Text hinzugefügt. Seincolor
-Parameter ist aufblack
gesetzt, ein<named-color>
-Wert.
Wir haben fünf verschiedene Farbsyntaxen verwendet, um zu demonstrieren, was möglich ist. In der realen Welt sollten Sie und Ihr Team jedoch bevorzugt eine bevorzugte Farbschreibweise wählen, bei der alle, die an einer Codebasis arbeiten, dieselbe Farbsyntax verwenden.
Andere Möglichkeiten zur Verwendung von Farbe
CSS ist nicht die einzige Web-Technologie, die Farbe unterstützt. Andere Beispiele umfassen:
- Die HTML Canvas-API
-
Ermöglicht das Zeichnen von 2D-Bitmap-Grafiken in einem
<canvas>
-Element. Siehe unser Canvas-Tutorial, um mehr zu erfahren. - SVG (Scalable Vector Graphics)
-
Ermöglicht Ihnen das Erstellen von Bildern durch Befehle, die bestimmte Formen, Muster und Linien zeichnen. SVG-Befehle sind im XML-Format und können direkt in eine Webseite eingebettet oder mit dem
<img>
-Element auf der Seite platziert werden, genau wie jede andere Art von Bild. - WebGL
-
Die Web Graphics Library ist eine auf OpenGL ES-basierende API zum Zeichnen von hochleistungsfähigen 2D- und 3D-Grafiken im Web. Siehe unser WebGL-Tutorial, um mehr zu erfahren. Siehe auch WebGPU, einen Nachfolger von WebGL für moderne GPUs.
Hinweis:
Einige nun veraltete HTML-Attribute akzeptierten Farben als Werte, wie bgcolor
und vlink
. Diese Attribute akzeptierten nur <named-color>
und drei- oder sechsstellige <hex-color>
-Werte.