从文档流认识html

写html,css的同学应该需要清楚什么是文档流。文档流:将窗体自上而下分成一行一行,
并在每行中按从左至右的挨次排放元素,即为文档流。

每个非浮动块级元素都独有一行, 浮动元素则按规则浮在行的一端. 若当时行容不下, 则另起新行再浮动。内联元素也不会独有一行. 一切元素(包括块级,内联和列表元素)均可生成子行, 用于摆放子元素。有三种状况将使得元素离开文档流而存在,分别是浮动、绝对定位、固定定位.
然则在IE中浮动元素也存在于文档流中。

  浮动元素不占任何正常文档流空间,而浮动元素的定位照样基于正常的文档流,然后从文档流中抽出并尽能够远的挪动至左侧或许右侧。当一个元素脱离正常文档流后,依然在文档流中的其他元素将忽略该元素并填补其原先的空间。

  基于文档流,理解以下的定位形式:

  相对定位:元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。

  绝对定位:即完全离开文档流, 相关于position属性非static值的比来父级元素进行偏移。

固定定位:即完全离开文档流,相关于视区进行偏移。

文档流是文档中可显示对象在排列时所占用的位置。比如网页的div标签它默认占用的宽度位置是一整行,p标签默认占用宽度也是一整行,因为div标签和p标签是块状对象。
网页中大部分对象默认是占用文档流,也有一些对象是不占文档流的,比如表单中隐藏域。当然我们也可以让占用文档流的元素转换成不占文档流,这就要用到CSS中属性position来控制。

看看CSS 2.0对position的定义:检索对象的定位方式。共有4种取值。

absolute:绝对定位。将对象从文档流中拖出,使用left,right,top,bottom等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据body对象。而其层叠通过z-index属性定义
。当对象定位在浏览器窗口以外,浏览器因此显示滚动条。

fixed:固定定位。对象定位遵从绝对(absolute)方式。但是要遵守一些规范。当对象定位在浏览器窗口以外,浏览器不会因此显示滚动条,而当滚动条滚动时,对象始终固定在原来位置。
relative:相对定位。对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置。当对象定位在浏览器窗口以外,浏览器因此显示滚动条。

static:元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。

inherit:继承值,对象将继承其父对象相应的值。

原文:http://jingyan.baidu.com/article/ce436649eae6673773afd3ab.html

时间: 2024-10-13 02:21:55

从文档流认识html的相关文章

理解文档流

这个暑假里的实习是真正让我体会到了做前端一定要理解文档流.之前一直处于必须给元素加边框才能看到我讲元素放置在了文档中的什么位置.理解了文档流,脑海中就会定位到相应的元素. 文档流,其实本没有这样的定义,有的是普通流的概念.简单说就是元素按照其在HTML中的位置顺序决定排布的过程.并且这种过程遵循标准的描述. 即将窗体自上而下的分成一行一行,并在每行中按照从左至右的顺序排放,即为文档流.所有的HTML都在块框或者行内框中. 当浏览器开始渲染HTML文档,它从窗口的顶端开始,经过整个文档内容的过程中

position脱离文档流与浮动脱离文档流的区别

以前我觉得position:absolute;是可以脱离文档流的,float:left;也可以脱离文档流,就觉得二者是一样的,感觉可以去浮动的方法来解决position:absolute;引起的父元素塌陷问题,结果证明我错了...下边是一个demo. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 &l

css脱离文档流

Q:什么是文档流? A:简单的说可以理解为元素在页面上出现的先后顺序. Q:什么情况下会脱离文档流? A:当使用“浮动”与“绝对定位”时. Q:脱离文档流就不占据空间了吗? A:可以这么说.更准确地一点说,是一个元素脱离文档流之后,其他的元素在定位的时候会当做没看见它,两者位置重叠都是可以的. Q: 脱离文档流是不是指该元素从dom树中脱离? A: 不是,用浏览器的审查元素就可以看到脱离文档流的元素(例如被float了)依然会出现在dom树里. 需要注意的是,使用float脱离文档流时,其他盒子

关于css浮动框是否脱离文档流的分析

在了解浮动属性之前,首先我们先了解一下html中关于display属性的相关知识. display属性常用的有inline, block, inline-block. inline也就是内联的意思. 常见的html标签中如 span, font, a, b, em 都是内联元素. 所谓内联,简单理解就是不会换行的元素. <body> <b>bold element</b> <a href="http://www.google.com">g

前端学习 -- Css -- 文档流

文档流 文档流处在网页的最底层,它表示的是一个页面中的位置, 我们所创建的元素默认都处在文档流中 元素在文档流中的特点 块元素 块元素在文档流中会独占一行,块元素会自上向下排列. 块元素在文档流中默认宽度是父元素的100%. 块元素在文档流中的高度默认被内容撑开. 内联元素 1.内联元素在文档流中只占自身的大小,会默认从左向右排列,如果一行中不足以容纳所有的内联元素,则换到下一行,继续自左向右. 2.在文档流中,内联元素的宽度和高度默认都被内容撑开. 当元素的宽度的值为auto时,此时指定内边距

CSS总结篇—熟悉而陌生的文档流

文档流 我相信,在大家刚学css的时候,一定对这个名词熟悉而又陌生.在查阅了相关资料后,总结了下对文档流的认识. 文档流定义:将窗体自上而下分成一行一行,并在每行中按从左至右的挨次排放元素,即为文档流 每个非浮动块级元素都独有一行, 浮动元素则按规则浮在行的一端. 若当时行容不下, 则另起新行再浮动.内联元素也不会独有一行. 一切元素(包括块级,内联和列表元素)均可生成子行, 用于摆放子元素.有三种状况将使得元素离开文档流而存在,分别是浮动.绝对定位.固定定位.然则在IE中浮动元素也存在于文档流

CSS文档流

文档流 将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流. 每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动. 内联元素也不会独占一行. 几乎所有元素(包括块级,内联和列表元素)均可生成子行, 用于摆放子元素. 有三种情况将使得元素脱离文档流而存在,分别是浮动,绝对定位, 固定定位. 浮动元素不占任何正常文档流空间,而浮动元素的定位还是基于正常的文档流,然后从文档流中抽出并尽可能远的移动至左侧或者右侧.文字内容会围绕在浮

float/文档流

float : left | right | none | inherit; 文档流是文档中可显示对象在排列时所占用的位置. 浮动的定义: 使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停了下来. clear : left | right | both | none | inherit; 元素的某个方向上不能有浮动元素.clear:both;在左右两侧均不允许浮动元素. 清除浮动方法 加高度    问题:扩展性不好 <!DOCTYPE html> <html>

盒模型、文档流

盒模型 一.盒子中的区域 一个盒子中主要的属性就5个:width.height.padding.border.margin. width是“宽度”的意思,CSS中width指的是内容的宽度,而不是盒子的宽度. height是“高度”的意思,CSS中height指的是内容的高度,而不是盒子的高度 padding是“内边距”的意思 border是“边框” margin是“外边距” 二.认识padding 背景色会填充到padding中去,padding区域有背景颜色,background-color