html+css基础教程入门篇之CSS 浮动行框和清理,字节大神强推千页PDF学习笔记

18 阅读4分钟

none:默认值。元素不浮动,并会显示在其在文本中出现的位置

inherit:规定应该从父元素继承 float 属性的值

行框和清理

浮动框旁边的行框被缩短,从而给浮动框留出空间,行框围绕浮动框。

因此,创建浮动框可以使文本围绕图像:

行框围绕浮动框

要想阻止行框围绕浮动框,需要对该框应用 clear 属性。clear 属性的值可以是 left、right、both 或 none,它表示框的哪些边不应该挨着浮动框。

为了实现这种效果,在被清理的元素的_上外边距_上添加足够的空间,使元素的顶边缘垂直下降到浮动框下面:

clear 属性实例 - 对行框应用 clear

这是一个有用的工具,它让周围的元素为浮动元素留出空间。

让我们更详细地看看浮动和清理。假设希望让一个图片浮动到文本块的左边,并且希望这幅图片和文本包含在另一个具有背景颜色和边框的元素中。您可能编写下面的代码:

.news {

background-color: gray;

border: solid 1px black;

}

.news img {

float: left;

}

.news p {

float: right;

}

some text

这种情况下,出现了一个问题。因为浮动元素脱离了文档流,所以包围图片和文本的 div 不占据空间。

如何让包围元素在视觉上包围浮动元素呢?需要在这个元素中的某个地方应用 clear:

clear 属性实例 - 对空元素应用清理

不幸的是出现了一个新的问题,由于没有现有的元素可以应用清理,所以我们只能添加一个空元素并且清理它。

.news {

background-color: gray;

border: solid 1px black;

}

.news img {

float: left;

}

.news p {

float: right;

}

.clear { clear: both; }

some text

<div class="clear"></div>

这样可以实现我们希望的效果,但是需要添加多余的代码。常常有元素可以应用 clear,但是有时候不得不为了进行布局而添加无意义的标记。

不过我们还有另一种办法,那就是对容器 div 进行浮动:

.news {

background-color: gray;

border: solid 1px black;

float: left;

}

.news img {

float: left;

}

.news p {

float: right;

}

some text

这样会得到我们希望的效果。不幸的是,下一个元素会受到这个浮动元素的影响。为了解决这个问题,有些人选择对布局中的所有东西进行浮动,然后使用适当的有意义的元素(常常是站点的页脚)对这些浮动进行清理。这有助于减少或消除不必要的标记。

CSS clear 属性

clear 属性规定元素的哪一侧不允许其他浮动元素。

说明:clear 属性定义了元素的哪边上不允许出现浮动元素。如果声明为左边或右边清除,会使元素的上外边框边界刚好在该边上浮动元素的下外边距边界之下。

clear属性可选值如下:

left:在左侧不允许浮动元素

right:在右侧不允许浮动元素

both:在左右两侧均不允许浮动元素

none:默认值。允许浮动元素出现在两侧

inherit:规定应该从父元素继承 clear 属性的值

清除浮动的常用方法

.clearfix:after{ content:""; height:0;

visibility:hidden; display:block; clear:both;}

.clearfix{ zoom:1;}

.clear { clear:both }

内层div或者其他标签内含有浮动元素, 则可以直接在外层加clearfix样式即可以清除浮动. 这是兼容性最好的一种方法.

实例

利用浮动制作图片横向列表

html代码如下:

  • 最后

    如果你已经下定决心要转行做编程行业,在最开始的时候就要对自己的学习有一个基本的规划,还要对这个行业的技术需求有一个基本的了解。有一个已就业为目的的学习目标,然后为之努力,坚持到底。如果你有幸看到这篇文章,希望对你有所帮助,祝你转行成功。

    开源分享:docs.qq.com/doc/DSmRnRG…