Home  >  Article  >  Web Front-end  >  CSS3 achieves the effect of transparent background and opaque text

CSS3 achieves the effect of transparent background and opaque text

不言
不言Original
2018-06-25 15:31:045951browse

This article mainly introduces the relevant information about the sample code of CSS3 to achieve transparent background and opaque text. The content is quite good. I will share it with you now and give it as a reference.

I recently encountered a requirement to display text with a translucent background on a picture. The effect is as shown below:

Requirement.png

After seeing this requirement, the first reaction is to use opacity in CSS3 to set the transparency of the element.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>背景透明,文字也透明</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .container {
            width: 600px;
            height: 400px;
            background: url(&#39;https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg&#39;) no-repeat;
            background-size: cover;
            -webkit-background-size: cover;
            -o-background-size: cover;
            background-position: center 0;
        }

        .demo {
            position: absolute;
            width: 260px;
            height: 60px;
            top: 260px;
            line-height: 60px;
            text-align: center;
            background-color: black;
            opacity: 0.5;
        }

        .demo p {
            color: #FFF;
            font-size: 18px;
            font-weight: 600;
        }
    </style>
</head>

<body>
    <p class="container">
        <p class="demo">
            <p>2018世界杯已开幕:10天</p>
        </p>
    </p>
</body>

</html>

The effect is as follows:

##The background is transparent and the text is also transparent.png

This seems to meet the needs, but it is not perfect. After setting opacity, the entire element becomes translucent, causing the text to appear blurred. This solution is not advisable.

In fact, the only way to achieve transparent CSS is to set opacity. There are two other types:

  • css3’s rgba(red, green, blue, alpha), alpha’s value ranges from 0 to 1, such as rgba(255,255,255,0.8)

  • IE exclusive filter filter:Alpha(opacity=x), the value of x is from 0 to 100, such as filter:Alpha(opacity=80)

Here I used the method of setting rgba:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>背景透明,文字不透明</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .container {
            width: 600px;
            height: 400px;
            background: url(&#39;https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg&#39;) no-repeat;
            background-size: cover;
            -webkit-background-size: cover;
            -o-background-size: cover;
            background-position: center 0;
        }

        .demo {
            position: absolute;
            width: 260px;
            height: 60px;
            top: 260px;
            line-height: 60px;
            text-align: center;
            background-color: rgba(0,0,0,0.5);
        }

        .demo p {
            color: #FFF;
            font-size: 18px;
            font-weight: 600;
        }
    </style>
</head>

<body>
    <p class="container">
        <p class="demo">
            <p>2018世界杯已开幕:10天</p>
        </p>
    </p>
</body>
</html>

The effect is as follows:

Background Transparent, text opaque.png

After setting like this, the text looks much clearer.

Summary

In fact, to achieve this requirement, this is not the only way to think about it. You can also use two p's in the same position. , one is a translucent background p, and the other is a text p, which can also solve the problem, but it requires absolute positioning or negative margin, and a p with empty content appears. This method will be slightly complicated in some scenarios, as shown in the following example Therefore, in actual demand scenarios, specific problems still need to be analyzed in detail.

The above is the entire content of this article. I hope it will be helpful to everyone’s study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

Implementation of linear color gradient in CSS3

Using CSS3 to implement text timing upward scrolling

CSS to implement adaptive width menu button effect

The above is the detailed content of CSS3 achieves the effect of transparent background and opaque text. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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