HTML Colors: How to add Color to your Web Page

Colors are applied to an HTML element using CSS. You can also pick which part of the element to apply color to.

We've just seen the various ways of applying styles to an HTML document. Some of those examples included adding color to the document. Seeing as color is a major part of any website design, let's look more closely at applying color to a web page.

Foreground Color

Foreground color is used to change the color of an element's text.

Foreground color is specified like this color:orange;.

For example:

Try it

Foreground color can also (indirectly) affect the color of other parts of the element, including its border.

This may or may not be the desired effect. However, it can always be overridden by explicitly specifying a color for the affected property.

Try this

Below is an example where a border is specified, along with its color.

Remove border-color:olivedrab; from the styles, then click Run to see how it changes the color of the border.

Background Color

Background color is specified like this: background-color:yellow

For example:

Try it

Border Color

We've already seen an example of specifying a color for an element's border (above). That's one way of specifying the various border properties.

You can also specify several border properties in one go (rather than separating them into different declarations). You can do this using the border shortcut property, which allows you to specify the border's width, style, and color in one place.

Here's an example:

Try it

Embedded and External Styles

The examples on this page use inline styles. As with all styles, you can also use the embedded method or the external method.

Color Names

In the above examples, I used color names to specify the colors.

You can specify a color by its name (eg, blue), its hexadecimal value (eg, #0000ff), RGB value (eg rgb(0,0,255)), or its HSL value (eg hsl(240,100%,100%)).

Beginners may find it easier to specify colors by their color name, as color names are probably a lot easier to remember than the other options. Although color names are easier to remember, the hexadecimal, RGB, and HSL notations provide you with more color options.

Hexadecimal color codes are a combination of letters and numbers. The numbers go from 0 to 9 and the letters go from A to F. When using hexadecimal color values in your HTML/CSS, you precede the value with a hash (#). Although hexadecimal values may look a little weird at first, you'll soon get used to them.

If you use graphics software, such as Adobe Photoshop or GIMP, you might be used to the RGB or HSL methods.

The chart below shows some examples of color names, along with their corresponding hexadecimal and RGB values.

This table is a small sample of the enormous range of colors available in HTML. To see more, check out HTML Color Codes.

You can make up your own colors by simply entering any six digit hexadecimal value (preceded by a hash).

In the following example, we specify the same color using three different methods. The resulting color is the same.

Try it

If we wanted to change to a different shade of blue, we could change our value slightly like this:

Try it


You can also use alpha to specify the level of opacity the color should have. This is only available on RGB and HSL notations. To do this, add the letter "a" to the functional notation (i.e. RGBA and HSLA). For example, rgba(0,0,255,0.5) results in a semi-transparent blue, as does hsla(240, 100%, 50%, 0.5).

Here's an example of using RGBA to change the opacity.

Try it

Here's an example of using HSLA to change the opacity.

Try it

Choosing Colors - The Easy Way

By using hexadecimal, RGB, or HSL notation, you have a choice of over 16 million different colors. For example, you can start with #000000 and increment by one value all the way up to #FFFFFF. Each different value represents a slightly different color.

But don't worry — you won't need to remember every single hexadecimal color value! The HTML color picker and color chart make it easy for you to choose colors for your website.