视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
css实现背景图片半透明内容不透明代码分享
2020-11-27 18:49:11 责编:小OO
文档
 本文主要和大家介绍了纯css实现背景图片半透明内容不透明的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助到大家。

最近做一个登陆界面的,突然想使用这种背景图片透明,而内容不透明的效果,这里我就说一说我的两个思路吧。

效果展示

半透明

不透明

常见的失败做法

最常见的做法事设置元素的opacity,这种设置出来的效果就是内容与背景都事半透明的,严重影响视觉效果。

还有就是设置background-color:rgba(),这种方式只能设置背景颜色的透明度。

正确姿势

我想到两个方法,第一个就是利用伪元素::before,我们通过给伪元素添加背景并且将伪元素的设置伪元素的背景透明度来实现

<!DOCTYPE html>
 <html lang="en">
 <head>
 <meta charset="UTF-8">
 <title>登陆</title>
 <style type="text/css">
 body{
 background-image:url(images/bird.jpg);
 background-repeat: no-repeat;
 background-size:100%;
 }
 .login_box::before{
 content:"";
 /*-webkit-filter: opacity(50%); 
 filter: opacity(50%); */
 background-image:url(images/love.jpg);
 opacity:0.5;//透明度设置
 z-index:-1;
 background-size:500px 300px;
 width:500px; 
 height:300px;
 position:absolute;
 //一定要设置position:absolute,这样才能设置z-index,让背景处于内容的下一层
 top:0px;
 left:0px;
 border-radius:40px;
 }
 .login_box{
 position:fixed;
 left:50%;
 top:200px;
 width:500px;
 height:300px;
 margin-left:-250px;
 border-radius:40px;
 box-shadow: 10px 10px 5px #888;
 border:1px solid #666;

 text-align:center;
 }
 form{
 display:inline-block;
 margin-top:100px;
 }
 input{
 display:block;
 width:250px;
 height:30px;
 background-color: #888;
 border:1px solid #fee;
 outline:none;
 border-radius:10px;
 }
 input[type="submit"]{
 width:100px;
 height:30x;
 margin-left: 70px;
 background-color: #ccc;
 }
 span{
 color:red;
 font-size:15px;
 }
 </style>
 </head>
 <body>
 <p class="login_box">
 <form action=<?php echo $_SERVER['PHP_SELF'] ?> method="post">
 <input type="text" name="nickname">
 <span><?php echo $nameERR; ?></span>
 <br>
 <input type="password" name="password">
 <span><?php echo $passwordERR; ?></span>
 <br>
 <input type="submit" value="登陆">
 </form> 
 </p>
 </body>
 </html>

还有一种方法与伪元素异曲同工,我们可以通过设置不通的p,里面的p放置内容,父级p设置背景,然后给它设置透明度,大概布局如下:

<p class="bg">
 <p class="content">
 一些内容
 </p>
</p>

这样也可以达到同样的效果。

下载本文
显示全文
专题