【初级-个人理解】float是否脱离普通流?是否占据空间?以及浮动对内联和块元素的影响。
2016-11-30 09:36
211 查看
注:本文纯属个人理解。
First: “文档流”是,在css里面的定义是 normal flow(普通流)
链接(英文):https://www.w3.org/TR/CSS21/visuren.html
[b]链接(中文引用博客链接):http://blog.csdn.net/winnersong/article/details/1379324
[/b]
question 01:什么是普通流 (normal flow)?
首先,我们知道一个完整的网页即html文件是由众多的标签搭建形成的,标签在元素类型上分为如下三种。
块级元素:独占一行,可设置 width
和 height 属性。
[b] 内联元素:紧随前面的元素从左至右依次排列直到这一行的空间排满才会换行,不可设置 width 和 height
属性。[/b]
内联块级元素[b]:从左至右依次排列,可设置
width 和 height 属性。[/b]
讲到这里,普通流也差不多描述出来,普通流实则是标签在html中的排列方式——块级元素独占一行垂直排列,内联元素在行内从左至右依次排列
Start:
按照所了解的float会脱离普通流,脱离后占不占空间的问题。
PS:([b]黑色边框为父div1,灰色区域div2,红色区域div3,img)[/b]
首先,我们需要了解的是。float这个属性出现的目的是为了实现文字环绕图片的效果;其次,通常讲的脱离普通流的说法是准确的,我个人认为。单从float属性
的目的来讲,实现的就是文字环绕的效果,如果从这点来讲毫无疑问是浮动后占据原来空间的,我们知道元素可分为三类下面我们会分别展开讨论。 BUT 下面的例子中 我们会看到有的情况下它又是不占据空间的 ,从下面单一的小实验总结了一下:
情况一(浮动占据空间):浮动元素后紧随的标签果是 内联 或 内联块元素。
情况二 (浮动不占据空间):浮动元素后紧随的 是 块级元素 或者图片的时候。
01 div2: block, div3 : block , img: block
02 div2: block float : left, div3 : block , img: block
[b]
[b]03 div2: block float : left, div3 :
inline-block , img: block
[/b][/b]
[b][b] 问题来了:如果说脱离了文档流,为什么当div3改成内联块元素的时候
它能自动分隔开div2 的宽度。[/b][/b]
[b]
04 div2: block float : left, div3 : inline-block
margin-left:20px , img: block
[/b]
[b] 在上面的基础上再给div3增加一个margin-left:20px; 我们会发现,这个外边距会从div2 的右边开始计算。[/b]
[b]
[/b]
[b]05 删除div3 给img 分别 设置 inline、inline-block、block,我们发现img 始终在与div2 在一行从左至右依次排列。[/b]
[b]
[/b]
02 div2: block float : left,
div3 : block , img: block
First: “文档流”是,在css里面的定义是 normal flow(普通流)
链接(英文):https://www.w3.org/TR/CSS21/visuren.html
[b]链接(中文引用博客链接):http://blog.csdn.net/winnersong/article/details/1379324
[/b]
question 01:什么是普通流 (normal flow)?
首先,我们知道一个完整的网页即html文件是由众多的标签搭建形成的,标签在元素类型上分为如下三种。
块级元素:独占一行,可设置 width
和 height 属性。
[b] 内联元素:紧随前面的元素从左至右依次排列直到这一行的空间排满才会换行,不可设置 width 和 height
属性。[/b]
内联块级元素[b]:从左至右依次排列,可设置
width 和 height 属性。[/b]
讲到这里,普通流也差不多描述出来,普通流实则是标签在html中的排列方式——块级元素独占一行垂直排列,内联元素在行内从左至右依次排列
Start:
按照所了解的float会脱离普通流,脱离后占不占空间的问题。
PS:([b]黑色边框为父div1,灰色区域div2,红色区域div3,img)[/b]
首先,我们需要了解的是。float这个属性出现的目的是为了实现文字环绕图片的效果;其次,通常讲的脱离普通流的说法是准确的,我个人认为。单从float属性
的目的来讲,实现的就是文字环绕的效果,如果从这点来讲毫无疑问是浮动后占据原来空间的,我们知道元素可分为三类下面我们会分别展开讨论。 BUT 下面的例子中 我们会看到有的情况下它又是不占据空间的 ,从下面单一的小实验总结了一下:
情况一(浮动占据空间):浮动元素后紧随的标签果是 内联 或 内联块元素。
情况二 (浮动不占据空间):浮动元素后紧随的 是 块级元素 或者图片的时候。
01 div2: block, div3 : block , img: block
02 div2: block float : left, div3 : block , img: block
[b]
[b]03 div2: block float : left, div3 :
inline-block , img: block
[/b][/b]
[b][b] 问题来了:如果说脱离了文档流,为什么当div3改成内联块元素的时候
它能自动分隔开div2 的宽度。[/b][/b]
[b]
04 div2: block float : left, div3 : inline-block
margin-left:20px , img: block
[/b]
[b] 在上面的基础上再给div3增加一个margin-left:20px; 我们会发现,这个外边距会从div2 的右边开始计算。[/b]
[b]
[/b]
[b]05 删除div3 给img 分别 设置 inline、inline-block、block,我们发现img 始终在与div2 在一行从左至右依次排列。[/b]
[b]
[/b]
02 div2: block float : left,
div3 : block , img: block
相关文章推荐
- css float(脱离正常流:向左/右浮动直到父元素/另一float, 不占空间)
- 理解内联(display:inline)和浮动(float:left;)的区别
- css 的块元素(block element)、内联元素(inline element)及理解float属性
- css 浮动 理解Float的含义
- 关于wordpress的$post全局变量,以及主循环the loop的一些个人理解。
- 个人关于目前影响开发效率的几大因素总结以及解决方案
- squid是否支持http1.1和对KeepAlive支持的个人理解
- XML 命名空间以及它们如何影响 XPath 和 XSLT (Extreme XML)
- CSS学习(5)--float浮动元素、元素的定位和堆叠、以及css文件的验证
- XenServer中VM的存储格式对空间以及性能的影响
- 关于position和float的初级理解和对未来的一些想法
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)
- 说说标准--CSS核心可视化格式模型(visual formatting model)之八:float 特性以及浮动(Float)定位细则一
- XenServer中VM的存储格式对空间以及性能的影响
- javascript 命名空间 个人理解心得
- 个人对继承理解以及虚析构函数的理解
- 深入理解浮动定位(float)
- Oracle外键理解,以及外键是否可以为空
- squid是否支持http1.1和对KeepAlive支持的个人理解
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)