浮动定位与清理浮动

<style type="text/css">
<!--
#content{
margin:30px auto;
width:600px;
height:300px;}
#content_a{
width:150px;
height:100px;
border:3px solid #000000;
margin:20px;
background:#F90;}
#content_b{
width:150px;
height:100px;
border:3px solid #000000;
margin:20px;
background:#6c6;}

.p{ 

border:3px solid #cc0000;}

-->

</style>


<Div id="content">
<Div class="p">
<Div id="content_a">第一个Div</Div>
<Div id="content_b">第二个Div</Div>
</Div>
</Div>


下面修改一下代码,使用float:left对content_a和content_b同事应用向左的浮动,两者在同一行显示。

理想效果是上面这样的。而实际效果是下面这样的。

父容器并没有把浮动的子元素包围起来,俗称塌陷。这个时候就要用到clear,clear属性定义了元素哪些边上不允许出现浮动元素。
对刚才的body里的代码稍加修改 
<Div id="content">
<Div class="p">
<Div id="content_a">第一个Div</Div>
<Div id="content_b">第二个Div</Div>
<Div style="clear:left;"></Div>
</Div>
</Div>
clear:left属性只是消除其左侧Div浮动对它自己造成的影响,而不会改变左侧Div甚至于父容器的表现。

不过这种做法有个很大的问题就是向页面添加了内容来达到改变效果的目的,也就是数据和表现混淆。下面就用CSS来解决这一问题。
在CSS中添加一个类floatfix,对父容器添加floatfix类后,会为其追加一个不可见的块元素,然后设置其clear属性为left。
.floatfix:after{
content:".";
display:block;
height:0;
visibility:hidden;
clear:left;}
这样就可以看到正确效果了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值