博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS 浮动
阅读量:6827 次
发布时间:2019-06-26

本文共 1616 字,大约阅读时间需要 5 分钟。

hot3.png

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

CSS 浮动

请看下图,当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘:

CSS 浮动实例 - 向右浮动的元素

再请看下图,当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框 2,使框 2 从视图中消失。

如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。

CSS 浮动实例 - 向左浮动的元素

如下图所示,如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”:

CSS 浮动实例 2 - 向左浮动的元素

CSS float 属性

在 CSS 中,我们通过 float 属性实现元素的浮动。

如需更多有关 float 属性的知识,请访问参考手册:。

行框和清理

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

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

行框围绕浮动框

要想阻止行框围绕浮动框,需要对该框应用 。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

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

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

.news {  background-color: gray;  border: solid 1px black;float: left;}.news img {  float: left;  }.news p {  float: right;  }

some text

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

转载于:https://my.oschina.net/u/1404246/blog/181269

你可能感兴趣的文章
基于编辑距离和最长公共子串计算字符串相似度
查看>>
启动 angular-phonecat 项目时出现这玩意 。('The header content contains invalid characters');...
查看>>
创建标签等操作DOM的原生js API
查看>>
[硬件]_ELVE_STLINK下载出现nternal command error问题
查看>>
Spring 入门base
查看>>
cas 获取session中的用户信息
查看>>
2018.3.31——(2)负进制
查看>>
Bridge的VLAN接口模式
查看>>
读取某个文件夹下的所有文件
查看>>
XGBoost中参数调整的完整指南(包含Python中的代码)
查看>>
HDU 4619 Warm up 2
查看>>
HDU 1043 八数码 Eight A*算法
查看>>
Mysql控制语句
查看>>
谈Dedecms怎样防止被挂马的问题
查看>>
C#WinForm,TCP调试工具
查看>>
关于git配合tortoiseGit的基础使用
查看>>
虚拟机virtualbox 安装centos7.6.1810
查看>>
linux下实时查看tomcat运行日志
查看>>
MySql常用命令
查看>>
WebLOAD Open Source 从入门到精通
查看>>