纯css实现背景图⽚半透明内容不透明的⽅法
前⾔
最近做⼀个登陆界⾯的,突然想使⽤这种背景图⽚透明,⽽内容不透明的效果,这⾥我就说⼀说我的两个思路吧。
效果展⽰
半透明
不透明
常见的失败做法
最常见的做法事设置元素的opacity,这种设置出来的效果就是内容与背景都事半透明的,严重影响视觉效果。
还有就是设置background-color:rgba(),这种⽅式只能设置背景颜⾊的透明度。
正确姿势
我想到两个⽅法,第⼀个就是利⽤伪元素::before,我们通过给伪元素添加背景并且将伪元素的设置伪元素的背景透明度来实现<!DOCTYPE html>
<html lang="en">
<head>
<meta chart="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>
<div 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>
</div>
</body>
</html>
还有⼀种⽅法与伪元素异曲同⼯,我们可以通过设置不通的div,⾥⾯的div放置内容,⽗级div设置背景,然后给它设置透明度,⼤概布局如下:
<div class="bg">
<div class="content">
腾讯一键root
⼀些内容
关于雨的优美句子</div>
</div>
这样也可以达到同样的效果
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。