大前端学习笔记整理【二】CSS视觉格式化模型
- 盒子的尺寸和类型
- 定位策略(正常文档流,浮动或者绝对定位)
- 和文档树中其他元素的关系
- 额外的信息(比如视口的大小,图片的原始尺寸等)
- block 应用该属性值的元素将会产生一个块盒子。
- inline-block 应用该属性值的元素将产生一个行级块容器。inline-block的内部被格式化成一个块盒子,元素本身被格式化成一个原子行级盒子。
- inline 应用该属性值的元素将会产生一到多个行盒子。
- list-item 应用该属性值的元素(比如html中的li)将会产生一个主块级盒子和一个标签盒子。
- none 应用该属性值的元素将不会出现在格式化结构(formatting structure)中,也就是说,元素不产生任何盒子,对布局没有任何影响。元素的后代元素也不产生盒子,元素和元素的内容被从格式化结构中完全删除。通过设置后代元素的"display"属性值也不能改变。请注意,"display"为"none"时不产生任何不可见的盒子,实际上,根本不产生任何盒子。如果想 产生既不可见又影响格式化结构的盒子,请参考visibility属性。
- table,inline-table,table-row-group, table-column, table-column-group, table-header-group, table-footer-group, table-row, table-cell, and table-caption;应用以上属性值的元素将表现得像一个表格元素。
- 正常文档流(Normal flow)。 在CSS2.1中,正常文档流包括块级盒子的块格式化上下文,行级盒子的行格式化上下文以及块级盒子和行级盒子的相对定位。
- 浮动(Floats)。 在浮动模型中,一个盒子先根据正常文档流定位,然后被从文档流中拿出来尽可能的放到左/右边。上下文中的其他内容将流动到浮动元素的某一边。
- 绝对定位(Absolute positioning)。 在绝对定位模型中,盒子被从正常文档流中完全移除(被移除的盒子对它原来的兄弟盒子将不再产生任何影响) 并且根据它的包含块进行定位。
- static 应用该属性值的盒子就是正常的盒子,根据正常的文档流来进行定位。top、right、bottom和left属性不生效。
- relative 应用该属性值的盒子,其位置将根据盒子在正常文档流中初始的位置以及一个偏移量来计算。即盒子的最终位置将相对于原来的位置发生一定的偏移。当盒子B采用相对定位后,盒子B后面的其他盒子的定位将不受影响,就好像盒子B没有采用相对定位一样。
- absolute 应用该属性值的盒子,其位置由top、right、bottom和left属性来决定,这些属性将根据盒子的包含块来确定偏移量。采用绝对定位的盒子完全脱离正常文档流,也就是说,绝对定位的盒子对其他盒子将不再产生任何影响。采用绝对定位的盒子的外边距(margin)不与其他盒子的外边距重叠(collapse)。
- fixed 应用该属性值的盒子,其位置将根据绝对定位来计算,另外,盒子还将相对于一定的参照物固定不动。例如在视觉媒体中,采用fixed定位的盒子将相对于视口(viewport)固定不动。
- 绝对长度值 相对于参考边的偏移量是个固定的距离且可以为负。
- 百分比 偏移量是盒子包含块宽度(left、right)或高度(top、bottom)的百分比,可以为负。
- auto 自动。
- left 元素产生一个向左浮动的块盒子。其他内容流向盒子的右边。
- right 与left相似,盒子浮动到右边,其他内容流向盒子的左边。
- none 不浮动
- 向左浮动的盒子的外左边界不能超过包含块的左边界。同理应用于向右浮动的盒子。
- 对于一个向左浮动的盒子,如果在这个盒子之前还有其他向左浮动的盒子,那么,这个盒子的左外边界不能超过其他任何向左浮动的盒子的右外边界,或者这个盒子的上边界必须比其他盒子的下边界低。同理应用于向右浮动的盒子。
- 任何向左浮动的盒子的右外边界不能超过任何与之相邻的向右浮动的盒子的左外边界。同理应用于向右浮动的盒子。
- 浮动盒子的上外边界不能比包含块的上边界高。当浮动发生在两个合并的margin中时,浮动的盒子根据一个假设的父的空匿名块盒子定位。
- 浮动盒子的上外边界不能比任何其他之前的块盒子或浮动盒子的上外边界高。
- 浮动盒子的上外边界不能比任何之前的行盒子的上边界高。
- 一个向左浮动的盒子,如果在他之前还有向左浮动的盒子,那么这个盒子的右外边界不能超过包含块的有边界,除非这个盒子已经尽可能的向左了。同理应用于向右浮动的盒子。
- 浮动元素要尽可能的往高放置。
- 向左浮动的盒子要尽可能向左,向右浮动的盒子要尽可能向右。但是相对于尽可能向左或向右,更高的位置有更高的优先级。
- left 应用该属性值的元素盒子的上边界要低于该元素之前的左浮动元素盒子的底外边界。
- right 应用该属性值的元素盒子的上边界要低于该元素之前的右浮动元素盒子的底外边界。
- both 应用该属性值的元素盒子的上边界要低于该元素之前的左浮动或右浮动元素盒子的底外边界。
- none 不浮动。
- 将元素的上边界与最低的浮动元素的底外边界对齐需要的空间大小。
- 将元素的上边界放置到它假定的位置需要的空间大小。
- 如果display的值为none,那么position和float不起作用。在这种情况下,元素不产生盒子。
- 否则,如果position的值为absolute或者fixed,那么盒子就使用绝对定位,float的最终使用的值为none,display的取值依据如下表格来定。盒子的显示位置根据top、right、bottom和left属性决定。
- 否则,如果float的取值不会none,那么盒子将会浮动,display的取值参照下表。
- 否则,如果元素是根元素,那么display的取值参照下表。
- 否则,display的取值就是指定的值。
指定的值 最终使用的值 inline-table table inline, table-row-group, table-column, table-column-group, table-header-group, table-footer-group, table-row, table-cell, table-caption, inline-block block
其他 与指定的值相同
大前端学习笔记整理【二】CSS视觉格式化模型的更多相关文章
- 大前端学习笔记整理【一】CSS盒模型与基于盒模型的6种元素居中方案
概览 CSS盒模型,规定了元素框来处理元素的 内容.内边距.边框和外边距的方式 元素部分是指内容部分,也是最实际的内容,包围内容的称之为内边距,内边距外围是边框,边框外围就是外边距:且外边距是透明的, ...
- 大前端学习笔记整理【七】HTTP协议以及http与https的区别
前言 还是老样子,新博客开始前总是想先啰嗦几句...HTTP协议其实在当初学习java时老师就有提过...但是...反正就那么过去了... 这段时间公司的项目正好要求做https的转换和迁移,然后自己 ...
- 大前端学习笔记整理【四】LESS基础
第一次接触CSS预编译,然后对比后发现其实less的上手容易度确实比sass高不少,再加上公司项目也是使用的less.所以想想还是根据网上的各种教程,整理出来了一些比较基础的.而且比较能让我们这种初学 ...
- 大前端学习笔记整理【五】rem与px换算的计算方式
前言 这段时间的小项目中算是真正意义上使用了rem来进行移动端的页面布局,项目结束了我反思了一下之前的对于rem的使用...原来我以前对rem用法完全是在搞笑啊!!结合这次这个小项目,我觉得我也有必要 ...
- 大前端学习笔记整理【六】this关键字详解
前言 在上一篇博客里我总结了下辨认this指向的四种方式,但是有师兄抛出一个问题来,我发现那些this的指向并不能说明更复杂的情况,先看下这段代码 var a = { name: 'a', getNa ...
- 大前端学习笔记整理【五】关于JavaScript中的关键字——this
写在前面 工作有那么一段时间了,但是在工作中,发现自己的理论知识还是有所欠缺.特别是在javascript上,很多东西其实自己属于知道要用这个,但是不知道为什么要这么用...这种情况很是尴尬了,所以写 ...
- CSS视觉格式化模型
CSS视觉格式化模型(visual formatting model)是用来处理文档并将它显示在视觉媒体上的机制.这是CSS 2.1的一个基础概念.视觉格式化模型根据CSS盒模型为文档的每个元素生成0 ...
- 大前端学习笔记【七】关于CSS再次整理
如果你在日常工作中使用 CSS,你的主要目标可能会重点围绕着使事情“看起来正确”.如何实现这一点经常是远不如最终结果那么重要.这意味着比起正确的语法和视觉结果来说,我们更少关心 CSS 的工作原理. ...
- HTML+CSS学习笔记整理二
盒子模型CSS(重点) 边框border 边框通常使用连写border:1px(边框大小) solid(实线或其他) red(颜色) border-collapse:collapse (合并 ...
随机推荐
- C# 获取系统时间及时间格式
--DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 取当前年月日时分秒 currentTime=System. ...
- sql 2012 操作EXCEL 2013
确认是否有Microsoft.ACE.OLEDB.12.0数据接口 --进行配置: EXEC sp_configure 'show advanced options', 1 GO RECONFIGUR ...
- Ext.get Ext.getDom Ext.getCmp 的区别
Html DOM Ext Element Component Component 最高层 Html DOM 最基础 Ext.getCmp 是 Ext.ComponentMgr.get ...
- python之路-Day8
抽象接口 class Alert(object): '''报警基类''' def send(self): raise NotImplementedError class MailAlert(Alert ...
- Python全栈考试-部分试题(精选)
Python全栈考试(一) Python全栈考试(一) 1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py ...
- centos 安装 maven
1: 下载 maven 我采用的是 apache-maven-3.3.9-bin.tar.gz http://maven.apache.org/download.cgi 2: 解压 tar ...
- PowerDesigner使用教程
PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一.Rose是专攻UML对象模型的建模工具,之后才向数据库建模发展,而PowerDesign ...
- Camstar Portal modeling user guid --自定义用户菜单
通过studio 创建 menu definition 创建菜单 创建成功后到employee界面设置对应菜单就可以了
- Libcurl多线程crash问题(cento)
cento :http://blog.csdn.net/delphiwcdj/article/details/18284429 1 问题背景 后台系统有一个单线程的http接口,为了提高并发处理能力, ...
- Java基础知识系列——String
最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...