< head>
< title>test
< 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 class="two">sometext.
< /body>
< /html>
一、div中的text内容排布是什么规律,为什么text内同不会被遮盖?
二、在.one中加入红色clear后是不是应该清楚掉.one右侧的浮动影响,也就是说右侧不能出现浮动div,而在.two中加入float:left后.two仍旧像教程中一样浮动横向排列;
三、在.two中加入float后再加入clear:left就能实现清除掉浮动效果
解答:
第一点里面的TEXT内同(容?)不会被遮盖是指two里面的吗?我是这样理解的,div是块级元素,块级元素之间默认的效果应该是你的第三张图那样,当你给.one一个左浮动后它就脱离了文档流,所以.two就移上去了,但是.two里面的文字还是被挤下来了,那个高度刚好是.one的高度。
第二点,clear清除的不是自己的浮动,而是上一个标签的浮动,所以你在.one里面加clear其实没有任何作用,无论是clear:left,clear:right还是clear:both都一样,像你说的,要清除掉浮动效果只能在.two里面加clear:left才行。