askvity

How Do I Add Two Different Background Colors in HTML?

Published in CSS Backgrounds 5 mins read

You can add two different background colors, typically to an element or portion of your webpage, by using CSS techniques like gradients or by styling separate HTML elements. A common approach involves creating a dedicated container element and applying styles to it.

Achieving a look with two distinct background colors on a webpage isn't done directly within the HTML tags themselves, but rather through Cascading Style Sheets (CSS). This allows for flexible designs, whether you want a smooth transition between colors, a sharp split, or different colors applied to different sections of your page.

Using a Container Element for Split Backgrounds

As suggested by the provided reference, a practical method for splitting a background with custom dimensions is to use a specific container element, such as a <div>. This gives you precise control over the area where the two colors appear.

Here's how you can implement this:

  1. Create the HTML Structure: In your HTML file, add a div element where you want the split background to appear. Give it a descriptive class name, like container.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Two Background Colors Example</title>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
    
        <div class="container">
            <!-- Content goes here -->
            <h2>My Split Background Section</h2>
            <p>This area has two colors!</p>
        </div>
    
    </body>
    </html>
  2. Style the Container with CSS: In your linked CSS file (styles.css in this example), target the .container class. According to the reference, you can style this container directly, potentially replacing body-level styles for this specific effect, and set its dimensions (width and height) as needed. You can then use CSS properties to add the two colors.

    One of the simplest ways to apply two colors to a single element like this container is using a CSS linear gradient. This allows you to transition smoothly or create a sharp line between colors.

    .container {
        width: 80%; /* Custom width */
        height: 300px; /* Custom height */
        margin: 50px auto; /* Center the container */
        /* Add two background colors using a linear gradient */
        background: linear-gradient(to right, #ffcccc, #cceeff); /* Gradient from light red to light blue */
        color: #333; /* Text color */
        padding: 20px;
        box-sizing: border-box; /* Include padding in width/height */
        border-radius: 8px; /* Optional: rounded corners */
    }

In this CSS example:

  • We target the .container class.
  • We set a custom width and height as mentioned in the reference.
  • We use background: linear-gradient(...) to apply the two colors. to right specifies the direction, and #ffcccc and #cceeff are the two color stops.

You can control the direction (to left, to top, to bottom, to bottom right, or an angle like 45deg) and add more color stops with linear gradients. To create a sharp split rather than a gradient, you can specify the color stop positions:

.container {
    width: 80%;
    height: 300px;
    margin: 50px auto;
    /* Sharp split: First color for 50%, second color after 50% */
    background: linear-gradient(to right, #ffcccc 50%, #cceeff 50%);
    color: #333;
    padding: 20px;
    box-sizing: border-box;
    border-radius: 8px;
}

This method aligns with the approach described in the reference, allowing you to define a specific area (div.container) and apply a split background effect to it using CSS.

Other Techniques for Two Colors

While using gradients on a container is efficient, here are a few other ways to incorporate two background colors on a page or within a section:

  • Multiple Backgrounds on an Element: CSS allows applying multiple background layers. You could use two linear-gradient layers positioned differently, though this is often more complex than a single gradient.
  • Pseudo-elements (::before and ::after): You can use pseudo-elements on a container or even the body element. Position them, give them dimensions (e.g., 50% width/height), and assign each a different background color.
  • Splitting into Multiple Child Divs: Inside your main container, you could create two smaller divs, style each with a different background color, and float them or use flexbox/grid to position them side-by-side or one above the other.

Here is a summary of common methods:

Method Description Best For
CSS Linear Gradient Applies a color transition or sharp split directly to an element's background. Simple splits, gradients on a single element.
Multiple Elements Create separate HTML elements and style each with a different background. Different sections of a page, complex layouts.
Pseudo-elements Use ::before/::after on an element to create layered backgrounds. Splitting the background of a single container without extra markup.

In summary, you add two different background colors by selecting the specific HTML element you want to style (like the body for the whole page or a div.container for a section) and then using CSS properties, most commonly background with linear-gradient, or by styling multiple elements separately.

Related Articles