为什么遮罩层不能使用float来实现,请大神看看我的代码有问题吗?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS布局</title>
<style type="text/css">
*{
margin: 0;
padding:0;
}
.div1{
float:left;
width:380px;
height:240px;
background:#000;
opacity:0.3;
}
img{
width: 380px;
height: 240px;
}
</style>
</head>
<body>
<nav>
</nav>
<div class="div1"></div>
<div>
<img src="http://img1.sycdn.imooc.com/climg//58f829ca00010be703840240.jpg">
</div>
</body>
</html>
正在回答
遮罩层是要完全脱离文档流才能实现的,而浮动不是完全脱离文档流的,浮动是不会脱离文本流的,比如,这样写就是可以遮住的:

但是如果你这么写,文本内容就会出来,不被遮盖:

这就是float的特性,盒子可以被遮盖,但是里面的内容遮不住。、
祝学习愉快!
浮动本来就不是用来设置遮罩层的,当然实现的不对了。你设置了浮动之后两个块在一行显示,是不会重叠的。
正确的应该这么写:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS布局</title>
<style type="text/css">
*{
margin: 0;
padding:0;
}
.pre{
position: relative;
}
.div1{
position: absolute;
top: 0;
left: 0;
width:380px;
height:240px;
background:#000;
opacity:0.5;
}
img{
width: 380px;
height: 240px;
}
</style>
</head>
<body>
<nav>
</nav>
<div class="pre">
<img src="http://img1.sycdn.imooc.com/climg//58f829ca00010be703840240.jpg">
<div class="div1"></div>
</div>
</body>
</html>不同的技术有着不同的作用,我们不能硬拿设置字体大小的属性给字体设置颜色,同学不要钻了牛角尖哦。
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星