为什么没有overflow也能实现呢

来源:4-3 编程练习

宝慕林4199460

2019-04-27 12:09:58

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>浮动广告</title>
<style type="text/css">
.one{float: left;width:230px;height:400px;position:fixed;left:0;top: 50%;margin:-200px 0;}
.two{float: right;width:230px;height:400px;position:fixed;right: 0;top:50%;margin:-200px 0;}
.container{}

</style>
</head>
<body>
<div class="container">
<div ><img src="http://climg.mukewang.com/59c9f7ce0001839219034033.png">
</div>
<div class="one"><img src="http://climg.mukewang.com/5a3383c70001f1b702240364.png"></div>
<div class="two"><img src="http://climg.mukewang.com/5a3383d00001a3dd02240364.png"></div>
</div>
</body>
</html>

为什么这里没有给.container设置overflow,也能实现呢,overflow必须设置在父元素上吗,可以在.one和.two样式中直接添加吗

写回答

1回答

好帮手慕星星

2019-04-27

同学你好,

1、水平方向上出现了滚动条,是因为body标签有外边距,可以设置margin值为0清除。

2、左右两侧盒子设置的高度有些大了:

http://img.mukewang.com/climg/5cc3f8150001f78402410490.jpg

图片没有完全填充,可以设置图片宽高都为100%,或者更改盒子和图片宽高一致:

http://img.mukewang.com/climg/5cc3f847000159d001340074.jpg

这两种解决方式都是可以的。

3、左右两侧设置了固定定位就已经脱离文档流了,就不需要设置浮动了,去掉就可以。

参考修改:

http://img.mukewang.com/climg/5cc3f97c00016bb904480632.jpg

4、这里不需要设置overflow:hidden;因为不需要超出隐藏,父容器高度也没有塌陷问题。这个属性一般都是添加在父容器中,如果子元素超出,可以隐藏;如果子元素浮动脱离文档流,父容器高度没有撑起来,也可以使用这个属性。one和two盒子也可以使用,但是里面只有一张图片,添加上没有意义。

祝学习愉快!

1

0 学习 · 40143 问题

查看课程