haizlin / fe-interview

前端面试每日 3+1,以面试题来驱动学习,提倡每日学习与思考,每天进步一点!每天早上5点纯手工发布面试题(死磕自己,愉悦大家),6000+道前端面试题全面覆盖,HTML/CSS/JavaScript/Vue/React/Nodejs/TypeScript/ECMAScritpt/Webpack/Jquery/小程序/软技能……

Home Page:http://www.h-camel.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[css] 第148天 什么是脱离文档流?有什么办法可以让元素脱离标准的文档流?

haizhilin2013 opened this issue · comments

第148天 什么是脱离文档流?有什么办法可以让元素脱离标准的文档流?

commented

块级元素的默认值为 display:block;
脱离的办法就是 设置它为 display:inline-block;

正常文档流是块级元素垂直分布,行内和行内块级是水平分布,脱离文档流就是不按照正常文档流的顺序进行排列。
设置float、position可以脱离文档流,float是半脱离,元素中的内容仍处于文档流之中,position:absolute和fixed也会使脱离文档流

通过设置position为absolute fixed可以使得其脱离文档流
通过设置float 也可以使得其他盒子容器忽略其排布,但是盒子内的文本仍会为其调整位置。

文档流就是指元素在 HTML 文档中位置顺序决定排布的过程。HTML 元素有块级元素和行内元素,块级元素一个占一行,行内元素在一行内依次排布。整体元素从上到下的排布顺序如同瀑布一样。

脱离文档流即脱离了排布的规则。可以使用 floatabsolute/fixed 来脱离文档流。脱离文档流的元素不受文档流内元素的影响。

W3C中没有文档流document flow的说法,只有normal flow的概念。
normal flow中的盒子,构成结构化文本,其中包括block和inline,两者不可同时存在,非block即inline,元素按照其在HTML中的位置顺序决定排列的过程。
脱离普通流的三种方法:float,position,fixed。