为什么遮罩层不能使用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>
1 | < br > |
正在回答
遮罩层是要完全脱离文档流才能实现的,而浮动不是完全脱离文档流的,浮动是不会脱离文本流的,比如,这样写就是可以遮住的:
但是如果你这么写,文本内容就会出来,不被遮盖:
这就是float的特性,盒子可以被遮盖,但是里面的内容遮不住。、
祝学习愉快!
浮动本来就不是用来设置遮罩层的,当然实现的不对了。你设置了浮动之后两个块在一行显示,是不会重叠的。
正确的应该这么写:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <!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积分~
来为老师/同学的回答评分吧