overflow:hidden的问题?
<html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>无...
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div style="border:solid 1px #006600; width:300px; height:300px; float:left;"></div>
<div style="border:solid 1px #006600; width:200px; height:200px; background-color:#060"></div>
</body>
</html>
这段代码相信大家都能看得懂。之后我再第二个div里面加入了overflow:hidden属性。就成了下面这样了,为什么?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div style="border:solid 1px #006600; width:300px; height:300px; float:left;"></div>
<div style="border:solid 1px #006600; width:200px; height:200px; background-color:#060; overflow:hidden"></div>
</body>
</html>
我知道overflow:hidden是父级元素用来清除浮动的,使得视觉上面没有浮动的父级元素自动扩大,包含浮动的子元素。但是我现在没有编写父级元素,而是两个同级元素div,并且在第二个div上设置了overflow:hidden属性。为什么第二个div就逃离了第一个浮动div的覆盖范围,并且紧紧贴着第一个浮动div。就仿佛第二个div也设置了float:left属性一样。按理说它俩的位置不会有什么变化才对啊?因为overflow:hidden是给父级元素清除浮动的,但现在是应用在了同级元素上,不是父级元素。原理是什么,请高人回答。 展开
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div style="border:solid 1px #006600; width:300px; height:300px; float:left;"></div>
<div style="border:solid 1px #006600; width:200px; height:200px; background-color:#060"></div>
</body>
</html>
这段代码相信大家都能看得懂。之后我再第二个div里面加入了overflow:hidden属性。就成了下面这样了,为什么?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div style="border:solid 1px #006600; width:300px; height:300px; float:left;"></div>
<div style="border:solid 1px #006600; width:200px; height:200px; background-color:#060; overflow:hidden"></div>
</body>
</html>
我知道overflow:hidden是父级元素用来清除浮动的,使得视觉上面没有浮动的父级元素自动扩大,包含浮动的子元素。但是我现在没有编写父级元素,而是两个同级元素div,并且在第二个div上设置了overflow:hidden属性。为什么第二个div就逃离了第一个浮动div的覆盖范围,并且紧紧贴着第一个浮动div。就仿佛第二个div也设置了float:left属性一样。按理说它俩的位置不会有什么变化才对啊?因为overflow:hidden是给父级元素清除浮动的,但现在是应用在了同级元素上,不是父级元素。原理是什么,请高人回答。 展开
1个回答
展开全部
第一个div设置了浮动,那么这个div就不在正常的层中了,那么你的第二个div在放置的时候相当于第一个div根本就不存在的,所以会放置在最左边。除非你设置了overflow属性,这样就会把浮动的div位置给让出来放置第二个div,或者使用claear:both,
追问
"这样就会把浮动的div位置给让出来放置第二个div"这句话不对吧!浮动的div位置没让出来,是第二个div自己跑出来了。为什么?
追答
overflow属性的作用就是在前边浮动元素位置的后面放置自己,就是把第一个div的位置给让出来
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询