`

CSS文档流、块级元素以及行内元素

    博客分类:
  • CSS
阅读更多
CSS文档流与块级元素(block)、内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的CSS布局基本知识,比较表面.看过O'Reilly的<CSS权威指南>,发现里面提到的文档流概念让我很敏感. 可恶的是书中并没有解释文档流是什么东西,或许作者觉得这个太简单了以至于不值一提.但我觉得,这个概念实在太重要了.理解了它,一堆CSS布局的理论都 变得易于理解,并且体会到CSS这套设计的合理性所在. 于是我根据猜测,再加实验,得出一下说法.如有错误,纯属正常.

文档流

将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流.

每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动.

内联元素也不会独占一行. 几乎所有元素(包括块级,内联和列表元素)均可生成子行, 用于摆放子元素.

有三种情况将使得元素脱离文档流而存在,分别是浮动,绝对定位, 固定定位. 但是在IE中浮动元素也存在于文档流中(还让我觉得这样很合理&gt;<).

浮动元素不占任何正常文档流空间,而浮动元素的定位还是基于正常的文档流,然后从文档流中抽出并尽可能远的移动至左侧或者右侧。文字内容会围绕在浮动元素周围。当一个元素从正常文档流中抽出后,仍然在文档流中的其他元素将忽略该元素并填补他原先的空间。 

浮动概念让人迷惑根源在于浏览器对理论的解读造成的。只能说很多人以IE做标准,其实它不是。

基于文档流, 我们可以很容易理解以下的定位模式:

相对定位, 
即相对于元素在文档流中位置进行偏移. 但保留原占位. 
绝对定位, 
即完全脱离文档流, 相对于position属性非static值的最近父级元素进行偏移 
固定定位, 
即完全脱离文档流, 相对于视区进行偏移.

 

分享到:
评论

相关推荐

    企业网站开发技术实验文档

    企业网站开发技术 ...实验二:CSS --- 选择器(id、类、标签),引用方式(外部样式表、内部样式、内联样式、常用样式) 实验三:CSS --- 基本的颜色表示...实验四:CSS --- 标准文档流的特性、块级元素和行内元素的特性

    关于css 行元素和块元素 相互转换 居中

    一、块级元素 行内元素 div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。 您...

    全面了解行内元素与块级元素的区别

    首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。 块级元素:(以下列举比较常用的块级元素,详情可在w3cschool查询) XML/...

    CSS实现元素浮动和清除浮动的方法

    在标准文档流中元素分为2种,块级元素和行内元素,如果想让一些元素既要有块级元素的特点也同时保留行内元素特点,只能让这些元素脱离标准文档流即可。 浮动可以让元素脱离标准文档流,可以实现让多个元素排在同一...

    HTML开发王

    15.6.1 块级元素和行内级元素的不同 15.6.2 关于div元素和span元素 15.6.3 元素标识(id属性和class属性) 15.7 巩固与自测 第16章 应用表格和框架布局 16.1 使用表格进行网页设计和布局的方法 16.1.1 了解布局模块 ...

    CSS inline-block属性概述及其使用示例

    块级元素(block elements)来源于CSS盒子模型。块级元素包含width height,padding,border与margin,他们的排列方式是从上到下排列。 行内元素(inline elements)排列方式是水平排列。行内块元素(inline-block ...

    css解决浮动导致父元素高度坍塌的几种方法

    以前布局经常会用到float进行布局,但是我们都...4.行内元素是多个元素在一行中显示,从左往右顺序排列,显示不下换行 ②浮动定位 让块级元素横向显示 float: 取值:left 让元素浮动后,在当前行停靠在父元素的左侧,

    css中的三种基本定位机制

    1.普通流中,元素位置由文档顺序和元素性质决定,块级元素从上到下依次排列,框之间的垂直距离由框的垂直margin值计算得到,行内元素在一行中水平布置 2.相对定位看作普通流的一部分,移动后的元素仍占据原来的位置...

    《CSS设计彻底研究》光盘源码

     3.6.1 实验1——行内元素之间的水平margin   3.6.2 实验 2——块级元素之间的竖直margin   3.6.3 实验3——嵌套盒子之间的margin   3.6.4 实验4——将 margin设置为负值   3.7 CSS中的几何题   3.8...

    position替代部分float进行网页元素定位

    块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。 relative 元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。 absolute 元素框从文档流...

    CSS网页设计 把HTML标记分类

    (可以使用display=block将行内元素转换成块元素,display=none表示生成的元素根本没有框,也既不显示元素,不占用文档中的空间) 《CSS权威指南》中文中:任何不是块级元素的可见元素都是内联元素。其表现的特性是...

    css设计彻底研究 源代码

    3.5 盒子之间的关系 3.5.1 HTML与DOM 3.5.2 标准文档流 3.5.3 div 标记与 span 标记 3.6 盒子在标准流中的定位原则 3.6.1 实验1——行内元素之间的水平margin 3.6.2 实验2——块级元素之间的竖直margin...

    Web前端开发基础:CSS制作电子相册.ppt

    div与span的区别在于,div是一个块级(block-level)元素,它包围的元素会自动换行, 而span仅仅是个行内元素(inline elements),不会换行。 span没有结构上的意义,当其 他元素都 不合适的时候可以换上他,同时div...

    CSS学习之五 定位布局

    块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。 relative:元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。 absolute:元素框从文档流...

    前端面试题及答案整理(二)

    浮动框不属于文档中的普通流,当一个元素浮动之后,不会影响到块级元素的布局而只会影响内联元素的排列。 正因为浮动元素脱离了文档流,其父级元素并不知道它的存在,因此会表现为高度为0,无论浮动元

    css入门笔记

    注意:大部分行内元素不能修改 span,a,i,u,b,s 3.溢出处理 当内容多,元素区域小的时候,会产生溢出的效果,默认都是纵向溢出 属性:overflow,overflow-x,overflow-y 取值: 1.visible 可见的,默认值,溢出...

    《CSS设计彻底研究》【中文PDF+源代码】

    在《CSS设计彻底研究》中对设计中常用的网页元素和布局方式都给出详细的分类和归纳,并讲解了完整的解决方法,主要包括各种导航菜单(水平的、竖直的、固定宽度的、自适应宽度的、下拉的等),Tab面板、伸缩面板和...

    css关于position属性的用法详解(绝对定位和相对定位的混淆)

    块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。 relative 元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。 absolute 元素框从文档流...

    网页布局入门教程 如何用CSS进行网页布局

    1、标准文档流(Normal flow):从上到下,从左到右,输出文档内容,由块级元素(从左到右撑满页面,独占一行;触碰到页面边缘时,会自动换行。常见块级元素:div、lu、li、d、dt、p……)和行级元素(能在同一行内...

Global site tag (gtag.js) - Google Analytics