摘要:除非该元素前面还有一个浮动元素,这时它就会紧挨着前面的元素。真正让人迷惑的是浮动元素会尽可能的居顶,并且垂直定位规则比水平浮动规则的优先级更高。
浮动到底是什么?
它既不是position,但又不在标准流里,那么它究竟是怎么定位的?
浮动一开始作为文字环绕图片产生
DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Documenttitle>
<style type="text/css">
img {
width: 60px;
float: right;
margin: 20px;
}
.aside{
float: right;width: 15em;margin: 0 1em 1em;padding: 0.25em;border:1px solid;
}
style>
head>
<body>
<img src="icon_head.png" alt="icon_head.png"/>
<p >我是测试文字1我是测试文字我是测试文字2我是测试文字我是测3试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我4是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文5字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测6试文字我是测试p>
<p class="aside">
这又是另一端蚊子了
p>
<p >我是测试文字1我是测试文字我是测试文字2我是测试文字我是测3试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我4是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文5字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测试文字我是测6试文字我p>
body>
html>
文字环绕图片
(如果看不到环绕效果,试试把窗口变小)
float不在标准流,但却会在标准流占位
DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Documenttitle>
<style type="text/css">
.float{float: left;
background: red;
margin: 10px;}
.bg{background: green;}
style>
head>
<body>
<div>不浮动元素div>
<div class="float">浮动元素div>
<div class="bg">不浮动元素div>
body>
html>
占位
这个占位很神奇,浮动元素在下一元素的盒模型内,有点像ps添加了一个层,但这个层不是简单覆盖,而是告诉下一层这个位置我占了,你往旁边去吧!
还有,行内元素被设置浮动后,可以设置高度和宽度,这是为什么呢?
这个行内元素就像被设置成inline-block一样,但和inline-block比又多了浮动的功能,具体原因还不清楚待查
那么浮动到底按照什么顺序组合的?
我们来看代码
DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Documenttitle>
<style type="text/css">
ul{list-style: none;width: 350px;}
ul li{float:left;margin:4px;}
img {
vertical-align: top;
}
style>
head>
<body>
<ul>
<li><img src="http://placehold.it/100x100&text=1"/>li>
<li><img src="http://placehold.it/100x150&text=2"/>li>
<li><img src="http://placehold.it/100x100&text=3"/>li>
<li><img src="http://placehold.it/100x100&text=4"/>li>
<li><img src="http://placehold.it/100x100&text=5"/>li>
<li><img src="http://placehold.it/100x150&text=6"/>li>
<li><img src="http://placehold.it/100x100&text=7"/>li>
ul>
body>
html>
排列
总的来说就是,浮动元素会移到左侧或右侧。除非该元素前面还有一个浮动元素,这时它就会紧挨着前面的元素。
真正让人迷惑的是:浮动元素会尽可能的居顶,并且垂直定位规则比水平浮动规则的优先级更高。
在这个例子中,图片2撑高了该行的高度,所以在放完图片3后,仍然有足够的垂直空间放置图片4。
记住,当你有一个浮动元素(不位于尾行)时,它后面的浮动元素占用的垂直空间必须大于或等于它才会触发换行。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/2038.html
摘要:浮动为什么会有文本环绕效果产生这个疑问主要来自于以往的印象浮动的元素是脱离文档流的。也就是说,浮动元素的确脱离了文档流,因此文档流中的块框会无视浮动的元素,但是文本不会。 作为前端写了很多页面布局,但是浮动这块一直是我似懂非懂的盲点,一方面用浮动能实现很多布局,另一方面浮动造成的影响又会破坏布局让人头疼,所以今天就特地写篇博文解决这块盲点。 本文主要讨论以下几个问题:1.浮动的原始用途...
摘要:浮动为什么会有文本环绕效果产生这个疑问主要来自于以往的印象浮动的元素是脱离文档流的。也就是说,浮动元素的确脱离了文档流,因此文档流中的块框会无视浮动的元素,但是文本不会。 作为前端写了很多页面布局,但是浮动这块一直是我似懂非懂的盲点,一方面用浮动能实现很多布局,另一方面浮动造成的影响又会破坏布局让人头疼,所以今天就特地写篇博文解决这块盲点。 本文主要讨论以下几个问题:1.浮动的原始用途...
摘要:浮动浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,相当于不占用空间,所以文档的普通流中的块框表现得就像浮动框不存在一样。 CSS浮动 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,相当于不占用空间,所以文档的普通流中的块框表现得就像浮动框不存在一样。 CSS ...
摘要:那我们举个栗子当先声明一个元素向左浮动时,由于脱离文档流,这个元素的右边就会空出一片空间,空间的长宽与浮动元素长宽相同。总结总结下来,浮动与清除浮动的顺序关系如下设置元素浮动,元素脱离文档流,不计算高度。 本文主要探讨两个问题: 为什么CSS设置浮动会引起父元素塌陷 为什么设置clear:both能清除浮动,并撑开父元素。 起因 CSS的浮动,算是我在写网页时用的最多的属性之一。但...
摘要:实验最基本测验浮动实验对应结果实验结果分析因为为块标签,而且处于同一文档流当中,固会向下排列。实验左浮动,右浮动,左浮动浮动实验结果实验结果分析左浮动,所以失去块级作用,并且脱离标准文档流,因此在第一行最左边。 其实CSS浮动原理就三句话,不像网上的某些文章说的天花乱坠! 浮动必会脱离文档流 浮动会失去块级作用 浮动只在自己所在位置那行向左或者向右浮动 请仔细理解上面这三句话,下面...
阅读 682·2023-04-25 19:43
阅读 3855·2021-11-30 14:52
阅读 3729·2021-11-30 14:52
阅读 3795·2021-11-29 11:00
阅读 3745·2021-11-29 11:00
阅读 3812·2021-11-29 11:00
阅读 3528·2021-11-29 11:00
阅读 6009·2021-11-29 11:00