css默认的布局是将元素一个一个地往下排列下来,如果不采取浮动,将导致页面非常长。
下面我们通过做一个常见的网站布局,来说明浮动是怎么一回事。
希望的效果是:
步骤一、先把代码写一下,
例:
html内容:
- <body >
- <div id="head">
- head
- </div>
- <div id="content">
- content
- </div>
- <div id="sidebar">
- sidebar
- </div>
- <div id="footer">
- footer
- </div>
- <p>要多写几行字</p>
- </body >
css内容:
- body
- {
- margin:0;
- border:0;
- }
- #head
- {
- width: 300px;
- height:50px;
- margin:10;
- border:1px solid #000;
- background: #0aa;
- }
- #content
- {
- width: 200px;
- height:80px;
- margin:10;
- border:1px solid #000;
- background: #aa0;
- }
- #sidebar
- {
- width: 100px;
- height:80px;
- margin:10;
- border:1px solid #000;
- background: #afa;
- }
- #footer
- {
- width: 300px;
- height:50px;
- margin:10;
- border:1px solid #000;
- background: #0aa;
- }
效果如下:

步骤二、
这不是我们想要的效果,我们想把siderbar块移到content块的右边。sidebar改成如下内容:
#sidebar { float: right; width: 100px; height:80px; margin:10; border:1px solid #000; background: #afa; }
得到的效果是:

或者是(改变浏览器的大小,sidebar位置会有变化):

为什么sidebar设了浮动,但没有放在content的旁边?
讲解:
1、因为元素是按线性排列的,sidebar在我们的html文件中是第三个元素,把它设成浮动后,他也只在第三个元素原来应该在的位置处左右浮动,而不会跑到其他元素的位置浮动。
2、浮动元素后的元素(footer和<p>),如果浮动元素按线性排列所在的位置,能容下footer和<p>,则这些元素跟上来,
3、否则,就不跟上来,也就是找个能容的下他们的空地,也就是还在默认的自然流中的位置。
书上讲,浮动是元素从元素自然流中抽离出来,浮动元素之后的元素,环绕在浮动元素的周围,这句话的含义如上所述。
步骤三、
怎样达到我们想要的效果呢?
一个最简单的办法,是 #sidebar还是加上float: right的属性,然后颠倒下html文件中,content和sidebar的顺序。
动手做一做吧。
步骤四、
咦,什么是下面的效果,content和sidebar的上边距怎么不一致呢?

margin的问题以后再讲。
步骤五、
浙公网安备 33010602011771号