27.2 清除层的漂移范围

若使用float不当会出现网页不对齐,过多向左或向右漂移,这点也是让很多使用TABLE布局的设计者头痛的地方,出现这种问题,需要了解clear的用法,用来清除不同方向的漂移,clear用法是相对flaot而言的。


clear:none|left|right|both


从以上代码可知,语法clear表示控制float漂移,可以设置float的方向漂移对设置的方向对象有效性,如下是表示各属性值的用法。

❑参数none:默认值。允许两边都可以有浮动对象。

❑参数left:不允许左边有浮动对象。

❑参数right:不允许右边有浮动对象。

❑参数both:不允许有浮动对象。

因为float比较难控制,因此很多初学者不喜欢使用CSS,其实,若对CSS关键的问题搞清楚了,那么CSS就容易学了,而且也会带来很大的方便,例如clear的用法,能使float漂移时,设置不需要float漂移的位置,代码27.2表示了用clear来改变属性float的漂移效果。

代码27.2 源代码\第27章\clear的用法.html


—————————————文件名:clear的用法.html———————————————

01 <html>

02 <head>

03 <title>clear的用法</title>

04 <style type="text/css">

05 #box

06 {

07 /设置宽度为100%/

08 width:100%;

09 }

10 #clear1

11 {

12 width:200px;

13 height:80px;

14 border:1px solid red;

15 /设置向左漂移/

16 float:left;

17 }

18 #clear2

19 {

20 width:200px;

21 height:80px;

22 margin:3px;

23 /设置向左漂移/

24 float:left;

25 border:1px solid red;

26 }

27 </style>

28 </head>

29 <body>

30 <div id="box">

31 <div id="clear1">

32 HTML+CSS完全自学手册1111

33 </div>

34 <div id="clear2">

35 HTML+CSS完全自学手册2222

36 </div>

37 </div>

38 </body>

39 </html>


【代码解析】在代码27.2中,代码第16、24行使用float对两个层设置在容器层中向左漂移,且确定两层之间的宽度都为200像素,漂移效果如图27.2所示。

27.2 清除层的漂移范围 - 图1

图 27.2 没有设置clear时

若float设置为left,图27.2中的两层都向左漂移,现在用clear属性对第二个层进行控制,使层二在整体效果中发生变化,对层二设置的CSS代码只要加上一行代码,设置clear为both,其层二完整样式代码如下。


/第二个层的样式文件/

01 #clear2

02 {

03 width:200px;

04 height:80px;

05 margin:3px;

06 /设置向左漂移/

07 float:left;

08 border:1px solid red;

09 /设置对象不能漂移/

10 clear:both;

11 }


【代码解析】只对层二设置clear为both(代码第10行),其float的漂移就按clear设置的显示,本处设置的是both,即不向两边漂移,如图27.3所示。

27.2 清除层的漂移范围 - 图2

图 27.3 设置clear为both后