首页 > 开发 > CSS > 正文

网页制作技巧:float和clear的问题

2024-07-11 09:02:03
字体:
来源:转载
供稿:网友

武林网(www.vevb.com)文章简介:请教关于float和clear的问题。

<html>
< head>
< title>test</title>
< style type="text/css">
body,div{margin:0; padding:0; }
.one{width:100px; height:30px; background:#900; float:left; clear:right;}
.two{width:150px; height:50px; background:#009; }
< /style>
< /head>
< body>
< div class="one">sometext.</div>
< div class="two">sometext.</div>
< /body>
< /html>


一、div中的text内容排布是什么规律,为什么text内同不会被遮盖?

2012-4-18 17:15:22 上传

下载附件 (2.04 KB)



二、在.one中加入红色clear后是不是应该清楚掉.one右侧的浮动影响,也就是说右侧不能出现浮动div,而在.two中加入float:left后.two仍旧像教程中一样浮动横向排列;

2012-4-18 17:17:19 上传

下载附件 (461 Bytes)



三、在.two中加入float后再加入clear:left就能实现清除掉浮动效果,.two在.one下面排列;

2012-4-18 17:19:29 上传

下载附件 (531 Bytes)
clearleft有效


解答:

第一点里面的TEXT内同(容?)不会被遮盖是指two里面的吗?我是这样理解的,div是块级元素,块级元素之间默认的效果应该是你的第三张图那样,当你给.one一个左浮动后它就脱离了文档流,所以.two就移上去了,但是.two里面的文字还是被挤下来了,那个高度刚好是.one的高度。
第二点,clear清除的不是自己的浮动,而是上一个标签的浮动,所以你在.one里面加clear其实没有任何作用,无论是clear:left,clear:right还是clear:both都一样,像你说的,要清除掉浮动效果只能在.two里面加clear:left才行。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表