设置子元素浮动或定位属性,为什么会影响到父元素

wuxia2118 2009-05-18 09:46:21
我对子元素a设置浮动属性,发现它的父元素li也浮动了,但我并没对父元素设置浮动属性啊,设置定位属性也有这种情况,为什么子元素的浮动或定位会影响父元素呢
...全文
448 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
土拉耗子 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lilimaty 的回复:]
我在FF中测试的结果和你一样,这样的显示是正确的,当a有了float:left以后,没有进行浮动的li就不能包含住a了,所以几个a就会排成一排。
在IE中li不会因为a的浮动而浮动,是因为IE的haslayout属性。
IE中haslayout的元素会对浮动进行自动清理,所以给a设置浮动以后,a就有了layout,浮动就被清理了。这样的显示反而是不正确的。
[/Quote]
顶你,说的很对。都是ie的bug,造成很多人以为ie的表现才是正确的,其实不是。
togezor 2009-05-21
  • 打赏
  • 举报
回复
如果父元素没有设置浮动,当子元素浮动的时候,就会浮动到父元素外面去
为避免这个问题
就有必要将父元素也设置浮动
lilimaty 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lilimaty 的回复:]
要么让li也浮动,要么在a下面再加一个 <div style="clear:both"> </div>清除浮动
[/Quote]

li浮动以后,还要加上clear:both 才可以...
tianshangyun520 2009-05-20
  • 打赏
  • 举报
回复
把父元素设置一个宽高试试,再不随便在父元素里随便打两个字
lilimaty 2009-05-20
  • 打赏
  • 举报
回复
要么让li也浮动,要么在a下面再加一个<div style="clear:both"></div>清除浮动
tobeno2 2009-05-19
  • 打赏
  • 举报
回复
中间加多一层DIV包裹着,这样就不会影响到最外面的元素了,而最里面的元素可以浮动。
wuxia2118 2009-05-19
  • 打赏
  • 举报
回复
那我不想这样能改变吗
lilimaty 2009-05-18
  • 打赏
  • 举报
回复
我在FF中测试的结果和你一样,这样的显示是正确的,当a有了float:left以后,没有进行浮动的li就不能包含住a了,所以几个a就会排成一排。
在IE中li不会因为a的浮动而浮动,是因为IE的haslayout属性。
IE中haslayout的元素会对浮动进行自动清理,所以给a设置浮动以后,a就有了layout,浮动就被清理了。这样的显示反而是不正确的。

61,124

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧