本文主要讲解“如何使用CSS浮动浮点属性”,简单明了,易学易懂。请跟随边肖的思路一起学习学习“如何使用CSS浮动浮动属性”!
00-1010很早就接触到了CSS,但他总是对浮动感到困惑,要么是因为理解能力差,要么是因为没有遇到热门教程。
前几天终于明白了浮动的基本原理,迫不及待想和大家分享。
写在前面的话:
因为CSS内容很多,我没有精力从头到尾讲,所以只能有针对性的讲解。
如果读者理解CSS盒子模型,但不是浮动的,那么这篇文章可以帮助你。
配菜水平有限,本文只是入门教程。请原谅我的不足!
本文以P元素的布局为例。教程开始:
首先要知道p是块级元素,在页面中占据一行,从上到下排列,也就是传说中的流。下图:
可以看出,即使p1的宽度很小,页面中的一行也可以容纳p1和p2,p2不会在p1后面,因为P元素是一行独占的。
请注意,上述理论参考了标准流程中的P。
菜式认为,无论布局多么复杂,其基本出发点都是:“如何在一行显示多个p元素”。.
显然,标准流量不能满足需求,浮动是必要的。
浮动可以理解为让某个p元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次。
例如,假设上图中的p2浮动,它将与标准流分离,但p1、p3和p4仍在标准流中,因此p3将自动向上移动,占据p2的位置并重新组合成一个流。图:
从图中可以看出,由于p2设置为浮动,不再属于标准流,p3自动上移替换p2,p1、p3、p4依次排列成为新流。因为浮动高于标准流量,p2挡住了p3的一部分,p3看起来“短”。
这里的P2是左漂(float:left),可以理解为向左浮动,向右浮动(float:right)当然是安排在右边。这里的左右指的是页面的左右边缘。
如果我们使用p2向右浮动,将会产生以下效果:
此时p2排列在页面右边缘附近,不再阻挡p3,读者可以清楚地看到上面提到的p1、p3、p4组成的流。
到目前为止,我们只浮动了一个P元素。多少?
让我们将左浮动添加到p2和p3,效果如图所示:
同样,由于p2和p3浮动,不再属于标准流,所以p4会自动上移,与p1形成“新”的标准流,而浮动在标准流之上,所以p2阻塞p4。
好吧,说到这一点,当p2和p3被设置为同时浮动时,p3将跟随p2。不知道读者有没有注意到,到现在为止,p2在每个例子中都是浮动的,但是它并没有跟随p1。因此,我们可以得出一个重要结论:
如果某个P元素A是浮动的,如果A元素的前一个元素是浮动的,那么A元素将跟随前一个元素(如果这两个元素不能放在一行,那么A元素将被推到下一行);如果A元素的前一个元素是标准流中的元素,则A的相对垂直位置不会改变,即A的顶部始终与前一个元素的底部对齐。
p的顺序由HTML代码中p的顺序决定。
靠近页面边缘的一端是正面,远离页面边缘的一端是背面。
r/> 为了帮助读者理解,再举几个例子。
假如我们把p2、p3、p4都设置成左浮动,效果如下:
根据上边的结论,跟着小菜理解一遍:先从p4开始分析,它发现上边的元素p3是浮动的,所以p4会跟随在p3之后;p3发现上边的元素p2也是浮动的,所以p3会跟随在p2之后;而p2发现上边的元素p1是标准流中的元素,因此p2的相对垂直位置不变,顶部仍然和p1元素的底部对齐。
由于是左浮动,左边靠近页面边缘,所以左边是前,因此p2在最左边。
假如把p2、p3、p4都设置成右浮动,效果如下:
道理和左浮动基本一样,只不过需要注意一下前后对应关系。由于是右浮动,因此右边靠近页面边缘,所以右边是前,因此p2在最右边。
假如我们把p2、p4左浮动,效果图如下:
依然是根据结论,p2、p4浮动,脱离了标准流,因此p3将会自动上移,与p1组成标准流。p2发现上一个元素p1是标准流中的元素,因此p2相对垂直位置不变,与p1底部对齐。p4发现上一个元素p3是标准流中的元素,因此p4的顶部和p3的底部对齐,并且总是成立的,因为从图中可以看出,p3上移后,p4也跟着上移,p4总是保证自己的顶部和上一个元素p3(标准流中的元素)的底部对齐。
至此,恭喜读者已经掌握了添加浮动,但还有清除浮动,有上边的基础清除浮动非常容易理解。
经过上边的学习,可以看出:元素浮动之前,也就是在标准流中,是竖向排列的,而浮动之后可以理解为横向排列。
清除浮动可以理解为打破横向排列。
清除浮动的关键字是clear,官方定义如下: 语法: clear : none | left | right | both 取值: none : 默认值。允许两边都可以有浮动对象 left : 不允许左边有浮动对象 right : 不允许右边有浮动对象 both : 不允许有浮动对象
定义非常容易理解,但是读者实际使用时可能会发现不是这么回事。
定义没有错,只不过它描述的太模糊,让我们不知所措。
根据上边的基础,假如页面中只有两个元素p1、p2,它们都是左浮动,场景如下:
此时p1、p2都浮动,根据规则,p2会跟随在p1后边,但我们仍然希望p2能排列在p1下边,就像p1没有浮动,p2左浮动那样。
这时候就要用到清除浮动(clear),如果单纯根据官方定义,读者可能会尝试这样写:在p1的CSS样式中添加clear:right;,理解为不允许p1的右边有浮动元素,由于p2是浮动元素,因此会自动下移一行来满足规则。
其实这种理解是不正确的,这样做没有任何效果。看小菜定论:
对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。
怎么理解呢?就拿上边的例子来说,我们是想让p2移动,但我们却是在p1元素的CSS样式中使用了清除浮动,试图通过清除p1右边的浮动元素(clear:right;)来强迫p2下移,这是不可行的,因为这个清除浮动是在p1中调用的,它只能影响p1,不能影响p2。
根据小菜定论,要想让p2下移,就必须在p2的CSS样式中使用浮动。本例中p2的左边有浮动元素p1,因此只要在p2的CSS样式中使用clear:left;来指定p2元素左边不允许出现浮动元素,这样p2就被迫下移一行。
那么假如页面中只有两个元素p1、p2,它们都是右浮动呢?读者此时应该已经能自己推测场景,如下:
此时如果要让p2下移到p1下边,要如何做呢?
同样根据小菜定论,我们希望移动的是p2,就必须在p2的CSS样式中调用浮动,因为浮动只能影响调用它的元素。
可以看出p2的右边有一个浮动元素p1,那么我们可以在p2的CSS样式中使用clear:right;
来指定p2的右边不允许出现浮动元素,这样p2就被迫下移一行,排到p1下边。
至此,读者已经掌握了CSS+p浮动定位基本原理,足以应付常见的布局。
其实,万变不离其宗,只要读者用心体会,再复杂的布局都可以通过总结的规律搞定。
感谢各位的阅读,以上就是“CSS浮动float属性怎么使用”的内容了,经过本文的学习后,相信大家对CSS浮动float属性怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154120.html