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('https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg') 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.pngThis 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:
<!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('https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg') 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>
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!