Anwenden von Farben auf HTML-Elemente mit CSS
Mit CSS gibt es viele Möglichkeiten, Ihren HTML-Elementen Farben hinzuzufügen, um das gewünschte Aussehen zu erzeugen. Dieser Leitfaden ist eine Einführung, wie CSS verwendet werden kann, um Farben auf HTML-Elemente anzuwenden. Dieser Leitfaden enthält Listen der CSS-Eigenschaften, die Farbe in ihren Werten setzen und wie Farben sowohl in Stylesheets als auch auf andere Weise verwendet werden.
Hinweis: Es ist wichtig, Farben weise zu verwenden. Wählen Sie immer geeignete Farben aus und stellen Sie sicher, dass der Kontrast zwischen Text und Hintergrund ausreichend ist, um die Lesbarkeit zu gewährleisten. 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 Farben haben können
Auf Elementebene kann alles in HTML mit Farbe versehen werden. Schauen wir uns die verschiedenen auf der Seite gerenderten Elemente an – wie Text, Ränder usw. Wir werden Listen der CSS-Eigenschaften bereitstellen, die auf jedes dieser Elemente Farbe 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 jedem Element verwendet werden.
Text
Wann immer ein Element gerendert wird, werden diese Eigenschaften verwendet, um die Farbe des Textes, seines Hintergrunds und aller Dekorationen des Textes zu bestimmen.
color-
Die Farbe, die beim Zeichnen des Textes und aller Textdekorationen (wie das Hinzufügen von Unter- oder Überthalbstrichen, Durchstreichungen usw.) verwendet wird.
background-color-
Die Hintergrundfarbe des Textes.
text-shadow-
Konfiguriert einen Schattierungseffekt, der auf den Text angewendet wird. Unter den Optionen für den Schatten ist die Basisfarbe des Schattens (die dann aufgrund anderer Parameter mit dem Hintergrund verschwommen und vermischt wird). Sehen Sie Textschlagschatten, um mehr zu erfahren.
text-decoration-color-
Die Standardfarbe für Textdekorationen (wie Unterstreichungen, Durchstreichungen usw.) ist
currentColor. Dieses Schlüsselwort repräsentiert den aktuellen Wert dercolor-Eigenschaft. Allerdings kann dieser Wert überschrieben werden, und Sie können eine andere Farbe für sie mit dertext-decoration-color-Eigenschaft verwenden. text-emphasis-color-
Die Farbe, die beim Rendern von Betonungssymbolen neben jedem Zeichen im Text verwendet wird. 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) im Element verwendet wird. Dies ist nur in editierbaren Elementen nützlich, wie
<input>und<textarea>oder in Elementen, deren HTML-Attributcontenteditableauftruegesetzt ist.
Boxen
Jedes Element ist eine Box mit irgendeiner Art von Inhalt und hat zusätzlich zu dem, was sich in der Box befindet, einen Hintergrund und einen Rand.
- Ränder
-
Siehe den Abschnitt Ränder für eine Liste der CSS-Eigenschaften, die Sie verwenden können, um die Farben der Ränder einer Box festzulegen.
background-color-
Die Hintergrundfarbe, die in Bereichen des Elements verwendet wird, die keinen Vordergrundinhalt haben.
box-shadow-
Konfiguriert Schattierungseffekte innerhalb und außerhalb der Box. Unter den Optionen für jeden Schatten ist die Basisfarbe des Schattens (die dann aufgrund anderer Parameter mit einem Hintergrund verschwommen und vermischt wird).
column-rule-color-
Die Farbe, die beim Zeichnen der Linie verwendet wird, die Textspalten bei Verwendung des CSS-Mehrspalten-Layouts trennt.
outline-color-
Die Farbe, die verwendet wird, um eine Umrandung um das Element zu zeichnen. Diese Umrandung unterscheidet sich vom Rand, da sie keinen Platz im Dokument reserviert. Umrandungen beteiligen sich nicht am Boxmodell und überlappen andere Inhalte. Umrandungen werden im Allgemeinen als Fokusanzeiger verwendet, um anzuzeigen, welches Element aktuell den Fokus hat und Tastatureingaben erhält.
Ränder
Jedes Element kann einen Rand haben, der um es gezeichnet wird. Ein einfacher Elementrand ist eine Linie, die um die Ränder des Inhalts des Elements gezeichnet wird. Sehen Sie Das Boxmodell, um mehr über die Beziehung zwischen Elementen und ihren Rändern zu erfahren, und den Artikel Styling von Rändern mit CSS, um mehr darüber zu erfahren, wie Sie Styles auf Ränder anwenden können.
Sie können die border-Kurzschreibweise verwenden, mit der Sie alles, was den Rand betrifft, auf einmal konfigurieren können (einschließlich nicht-farbbezogener Merkmale von Rändern, wie z.B. deren Breite, Stil (durchgehend, gestrichelt usw.):
border-colorKurzschreibweise-
Gibt eine einzelne Farbe an, die für jede Seite des Randes eines Elements verwendet werden soll.
border-left-color,border-right-color,border-top-color, undborder-bottom-color-
Ermöglicht es Ihnen, die Farbe der entsprechenden Seite des Randes eines Elements festzulegen.
border-block-start-colorundborder-block-end-color-
Mit diesen können Sie die Farbe festlegen, die beim Zeichnen der Ränder verwendet wird, die der Anfangs- und Endseite des Blocks am nächsten liegen, den der Rand umgibt. In einem von links nach rechts ausgerichteten Schreibmodus (wie beim Englischen) ist der Blockanfangsrand der obere Rand und der Blockendrand der untere Rand. Dies unterscheidet sich von den Inline-Anfang und -Ende, die die linken und rechten Ränder sind (entsprechend, wo jede Textzeile in der Box beginnt und endet).
border-inline-start-colorundborder-inline-end-color-
Diese ermöglichen es Ihnen, die Ränder zu färben, die dem Anfang und Ende jeder Textzeile in der Box am nächsten sind. Welche Seite das ist, hängt von den Eigenschaften
writing-mode,directionundtext-orientationab, die typischerweise (aber nicht immer) verwendet werden, um die Textausrichtung basierend auf der angezeigten Sprache anzupassen. Zum Beispiel, wenn der Text in der Box von rechts nach links rendert, wird dieborder-inline-start-colorauf die rechte Seite des Randes angewendet.
Farben in Stylesheets als Werte angeben
Nun, da Sie wissen, welche CSS-Eigenschaften es Ihnen ermöglichen, Farben auf Elemente anzuwenden, können Sie beginnen, Farben zu Ihren Webseiten hinzuzufügen. Lassen Sie uns einige Beispiele für die Verwendung von Farbe innerhalb eines Stylesheets betrachten. In diesem Beispiel nutzen wir mehrere zuvor erwähnte Eigenschaften, wobei das Konzept, Farben in CSS anzuwenden, dasselbe bleibt, unabhängig von der Eigenschaft.
Sehen wir uns zuerst das Ergebnis an, bevor wir uns den Code ansehen, den wir dafür brauchen:
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 einen Wrapper <div>, der zwei untergeordnete <div>-Elemente enthält, jedes mit einem einzelnen untergeordneten Absatz (<p>). Jedes Content-<div> erhält ein anderes Aussehen und Gefühl.
CSS
Schauen wir uns das CSS, das das oben gezeigte Ergebnis erzeugt, Stück für Stück an.
Hinweis: Wir verwenden in diesem Beispiel mehrere verschiedene CSS-Farbwerttypen, um deren Verwendung zu demonstrieren. Dies wird für Produktionscode nicht empfohlen. Verwenden Sie beim Schreiben von CSS den intuitivsten Werttyp 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 Styles auf das <div> anzuwenden, das all unsere weiteren Inhalte umschließt. Dadurch wird die Höhe des Containers mit height festgelegt, wobei die Breite dieses Blockelementes standardmäßig 100% seines übergeordneten Elements beträgt. Das display wird auf flex gesetzt und ein 10px-gap hinzugefügt, wodurch ein flexibler Container geschaffen wird, um die Kinder nebeneinander mit einem Abstand zwischen allen untergeordneten Elementen des Containers zu platzieren. Wir verwenden flex, um den flexiblen Kindern zu ermöglichen, den Container auszufüllen; es wirkt sich nicht auf den flexiblen Container selbst aus.
Interessanter für unsere Diskussion hier ist die Verwendung der border-Eigenschaft, um einen Rand um den äußeren Rand des Elements zu etablieren. Dieser Rand ist eine durchgehende Linie, 6 Pixel breit, in der benannten Farbe mediumturquoise.
Innerhalb unseres Wrappers haben wir eine linke Box und eine rechte Box.
.boxLeft {
background-color: rgb(245 130 130);
outline: 2px solid darkred;
}
Die .boxLeft-Klasse, die verwendet wird, um die Box auf der linken Seite zu stylen, setzt die Farbe des Hintergrunds und der Umrandung fest:
- Die Hintergrundfarbe der Box wird durch Ändern des Wertes der CSS-
background-color-Eigenschaft aufrgb(245 130 130)festgelegt, wobei diergb()-Funktionsnotation verwendet wird. - Eine Umrandung ist für die Box definiert. Anders als die häufiger verwendete
borderbeeinflusstoutlinedas Layout überhaupt nicht; es wird über dem gezeichnet, was sich außerhalb der Box des Elements befindet, anstatt Platz, wieborderes tut, zu schaffen. Diese Umrandung ist eine durchgehende, dunkelrote Linie, die zwei Pixel dick ist. Beachten Sie die Verwendung desdarkred-Schlüsselworts bei der Spezifikation der Farbe. - Beachten Sie, dass wir die Textfarbe nicht ausdrücklich einstellen. Das bedeutet, dass der Wert von
colorvon dem nächstgelegenen, enthaltenden Element, das ihn definiert, vererbt wird. Standardmäßig ist das Schwarz.
.boxRight {
background-color: hwb(270deg 63% 13%);
outline: 4px dashed #6e1478;
color: hsl(0deg 95% 95%);
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 hinzugefügt, weil Safari text-decoration nicht als Kurzschreibweise unterstützt.
Schließlich setzt die .boxRight-Klasse mehrere Styles auf der Box, die rechts gezeichnet wird. Dann werden die folgenden Farben festgelegt (mit fünf verschiedenen Möglichkeiten zur Deklaration von Farbwerten):
- Die
background-colorwird mithilfe derhwb()-Funktionsnotation festgelegt —hwb(270deg 63% 13%). Dies ist eine mittelviolette Farbe. - Die
outlineder Box wird genutzt, um anzugeben, dass die Box in einer vier Pixel dicken gestrichelten Linie umschlossen werden soll, deren Farbe ein etwas tieferes Violett mit dem sechsstelligen<hex-color>#6e1478ist. - Die Vordergrundfarbe (Text) wird festgelegt, indem die
color-Eigenschaft mithilfe derhsl()-Funktionsnotation festgelegt wird —hsl(0deg 95% 95%). Dies ist eine sehr helle rosa Farbe. - Wir fügen eine grüne Wellenlinie unter dem Text mit der
text-decoration-Kurzschreibweise hinzu, zusammen mit der Langhand-Komponente für die Browser-Kompatibilität. Wir haben den 3-stelligen<hex-color>#8f8verwendet, der dem Wert#88ff88entspricht. - Schließlich wird dem Text mit
text-shadowein leichter Schatten hinzugefügt. Seincolor-Parameter ist aufblackgesetzt, ein<named-color>-Wert.
Wir haben fünf verschiedene Farbsyntaxen verwendet, um zu demonstrieren, was möglich ist. In der realen Welt bevorzugen Sie und Ihr Team es, eine bevorzugte Farbnotation auszuwählen, wobei jeder, der an einer Codebasis arbeitet, dieselbe Farbsyntax verwendet.
Andere Möglichkeiten, Farben zu verwenden
CSS ist nicht die einzige Webtechnologie, die Farben unterstützt. Andere Beispiele umfassen:
- Die HTML Canvas API
-
Ermöglicht es Ihnen, 2D-Bitmap-Grafiken in einem
<canvas>-Element zu zeichnen. Sehen Sie unser Canvas-Tutorial, um mehr zu erfahren. - SVG (Scalable Vector Graphics)
-
Ermöglicht es Ihnen, Bilder mithilfe von Befehlen zu erstellen, die spezifische Formen, Muster und Linien zeichnen. SVG-Befehle sind als XML formatiert und können direkt in eine Webseite eingebettet oder mit dem
<img>-Element in die Seite eingebettet werden, genau wie jeder andere Bildtyp. - WebGL
-
Die Web Graphics Library ist eine auf OpenGL ES basierende API zum Zeichnen von leistungsstarken 2D- und 3D-Grafiken im Web. Sehen Sie unser WebGL-Tutorial, um mehr zu erfahren. Siehe auch WebGPU, ein Nachfolger für WebGL für moderne GPUs.
Hinweis:
Einige mittlerweile veraltete HTML-Attribute akzeptierten Farben als Werte, wie bgcolor und vlink. Diese Attribute akzeptierten nur <named-color>- und drei- oder sechsstellige <hex-color>-Werte.
Siehe auch
<color>Datentyp- CSS-Farbwerte Leitfaden
- Farben weise verwenden
- CSS-Farbmodul
- Grafiken zeichnen