How to make a background in HTML is one of the first questions that comes up when you want to quickly change the look of a page. In practice, HTML only provides the structure, while the background is usually styled with CSS.
The simplest method: a background for the whole page
If you want to change the background of an entire website, the most common approach is to use the background-color property for the body or html tag. This is the easiest option when you need a clean solid color without extra decoration.
Examples:
- body { background-color: #f5f7fa; } — a light neutral background;
- body { background-color: #111827; } — a dark background for a high-contrast design;
- body { background-color: white; } — a classic clean look.
A background image
When you want a more expressive design, you can use a background image. For this, the background-image property is the right choice. Just make sure the text stays readable and the background does not overwhelm the page.
These settings are often used together with an image:
- background-size: cover; — makes the image fill the entire block;
- background-position: center; — keeps the center of the image in focus;
- background-repeat: no-repeat; — prevents the image from repeating;
- background-attachment: fixed; — creates a fixed background effect.
This approach is often used for hero sections, banners, and promotional blocks.
How to set a background for a specific element
You do not always need to style the whole page. Sometimes it is enough to change only one block, such as a card, menu, or text section. In that case, the background is applied to a class or a specific element.
For example, for a block you can use:
- background-color — if you need a solid color;
- background-image — if you need an image;
- background — if you want to combine several settings in one rule.
This is especially useful in landing page layouts, product cards, and responsive sections.
A gradient as a modern background option
If you want a more polished look without using a separate image, a gradient is a great choice. It creates a smooth transition between colors and works well in modern interfaces.
Gradients are useful when you want a background to feel more dynamic without distracting the user. They are a good fit for buttons, headers, promo blocks, and decorative sections.
What to check before publishing
Once you understand how to make a background in HTML through CSS, it is worth checking a few practical details:
- is there enough contrast between the text and the background;
- does the background hide any important content;
- does the background look correct on mobile devices;
- does a large image slow the page down too much.
The best result usually comes from a simple approach: use a solid color for the base background, and add an image or gradient only where it truly improves the design.

