css中关于盒子模型与层模型的理解与应用(二)

题记:接css中关于盒子模型与层模型的理解与应用(一)

三,浮动与清除

浮动和清除是用来组织页面布局的又一柄利剑,这柄剑的剑刃就是 float 和 clear
属性。float可以脱离常规文本流,原来紧跟其后的元素就会在空间允许的情况下,
向上提升到与浮动元素平起平坐。clear则可以清除前面浮动的影响,使其待在原始位置。
实现目的:
一是可以实现报纸上那种文字绕排图片的效果。
二是可以让原来上下堆叠的块级元素,变成左右并列,从而实现布局中的分栏。

1)浮动

文字绕排图片

<img …… />
<p>11 22 33 44 55 55 ........</p>
p {margin:0; border:1px solid red;}`
img {float:left; margin:0 4px 4px 0;}

在这里插入图片描述
p元素占据了父元素的位置,内容(数字)绕开浮动的图片(详细原因后面解释)。

创建分栏

p { float:left; margin:0; width:200px; border:1px solid red;}
img {float:left; margin:0 4px 4px 0;}

在这里插入图片描述
两个元素都是float的(其实是p变成了line-block,后面解释)

围住浮动元素的三种方法
由于浮动脱离了文本流,有时候我们并不想要他影响到后面的元素,
比如下面:section部分不影响footer
在这里插入图片描述

<section>
<img src="images/rubber_duck2.jpg">
<p>It's fun to float.</p>
</section>

<footer> Here is the footer element that runs across the bottom of the page.</footer>
section {border:1px solid blue; margin:0 0 10px 0;}
img {float:left;
footer {border:1px solid red;}

方法一为父元素增加 overflow:hudden
在这里插入图片描述
可靠地迫使父元素包含其浮动的子元素(绿框包含图片),父级的高度随子级容器及子级内容的高度而自适应。
方法二同时浮动父元素
浮动 section 以后,不管其子元素是否浮动,它都会紧紧地包围(也称收缩包裹)住它的子元素,因此,需要用 width:100% 再让 section 与浏览器容器同宽。并且防止下面footer挤上去,要给它应用 clear:left。这样footer以及footer下面的就不会挤上去了。
在这里插入图片描述

方法3添加非浮动的清除元素
就是在浮动元素后面添加一个非浮动的子元素,然后清除该子元素。由于包含元素一定会包围非浮动的子元素,而且清除会让这个子元素位于(清除一侧)浮动元素的下方,因此包含元素一定会包含这个子元素——以及前面的浮动元素。
(1)直接简单的用HTML加一个子元素。
(2)用 CSS 来添加这个清除元素

.clearfix:after{content:".";display:block;height:0;
visibility:hidden;clear:both;
}
section {border:1px solid blue;  float:left; width:100%; ;}
img {float:left;}
footer {border:1px solid red;

在这里插入图片描述
clear:both 相对于无视了浮动元素,排在其后面,又由于其内容为空,就相当于子元素把父元素撑开了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值