Home > Web Front-end > CSS Tutorial > How Can I Dynamically Invert Font Color Based on Background Color in CSS?

How Can I Dynamically Invert Font Color Based on Background Color in CSS?

DDD
Release: 2024-12-16 11:55:10
Original
884 people have browsed it

How Can I Dynamically Invert Font Color Based on Background Color in CSS?

Inverting Font Color Based on Background Color

In CSS, you may encounter a scenario where you want to invert the font color depending on the background color, achieving an effect similar to the image below:

[Image with alternating white and black text on colored background panels]

CSS Solution:

While a direct CSS property for inverting font color based on background color does not exist, you can achieve this using pseudo elements. Additionally, for compatibility with older browsers like IE6 and IE7, you can employ two DIVs instead of pseudo elements.

Mix-Blend-Mode Property:

CSS has a property called mix-blend-mode, but it's not supported by Internet Explorer. This property allows you to blend the foreground (font color) and background colors to create various effects. However, as mentioned, its limited browser support makes it less practical for this scenario.

Pseudo-Element Approach:

To create the alternating color effect using pseudo elements, insert a :before and :after pseudo element on a parent element with a relative position. Set the content of these pseudo elements to the desired text and adjust their background colors. By controlling the width of the :after pseudo element, you can achieve the inversion effect.

Example Code:

.inverted-bar {
    position: relative;
}

.inverted-bar:before,
.inverted-bar:after {
    padding: 10px 0;
    text-indent: 10px;
    position: absolute;
    white-space: nowrap;
    overflow: hidden;
    content: attr(data-content);
}

.inverted-bar:before {
    background-color: aqua;
    color: red;
    width: 100%;
}

.inverted-bar:after {
    background-color: red;
    color: aqua;
    width: 20%;
}

html {
    font-size: 16px;
}
Copy after login
<div class="inverted-bar" data-content="Lorem ipsum dolor sit amet"></div>
Copy after login

This approach allows you to invert the font color depending on the background color, creating a visually appealing effect in your web designs.

The above is the detailed content of How Can I Dynamically Invert Font Color Based on Background Color in CSS?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template