读《精通css》--第三章可视化格式模型

一. 盒模型:

  1. IE 和 盒模型: 非标准盒模型

  2. 外边距叠加:什么情况下外边距会叠加?

    1)两个垂直的块元素

    2)两个包含关系的块元素并且之间没有padding和border隔开

    3)外边距与自身发生叠加,空元素,没有padding和border

    4)空元素的外边距碰到另一个空元素的外边距。

   解决办法:行内元素、浮动元素、绝对定位元素的外边距不会叠加。如果是包含关系的话,加上padding或者border。

二. 3种可视化格式模型:

  1. 普通流:块级元素和行内元素。

    1)块级框从上到下一个接一个垂直排列,框之间的距离由垂直外边距计算出来。

    2)行内框在一行中水平排列。可是使用水平内边距、边框、外边距改变水平间距。但是,垂直内边距、边框和外边距不影响行内框的高度。同样,给行内框设置显示的高度或者宽度也没有影响。

       行框:由一行形成的水平框。行框的高度总是足以容纳它所包含的所有行内框。但是设置行高可以增加这个框的高度。

       修改行内框的尺寸的唯一方法是修改行高或者水平边框、内边距、外边距。

    3)inline-block: IE8及其以上支持。

  2. 绝对定位

  3. 浮动:浮动的框可以左右移动,直到它的外边缘碰到包含框或者另一个浮动框的边缘。浮动框也不在文档的普通流中。

    如果浮动的元素后面有一个文档流中的元素,那么这个元素的框会表现得像浮动根本不存在一样。但是,框内的文本内容会受到浮动元素的影响,会移动以留出空间。

    清除浮动:clear属性 left、right、both、none。

      原理,如果有一个浮动框和一个不浮动框,则给不浮动框添加clear属性,原理就是给这个不浮动框添加足够多的外边距。

      如果一个框内只包含着浮动框,清理浮动的办法有:

      a. 在框内最后添加一个空元素,并添加clear属性清除。这个原理同上。

      b. 给框也添加浮动。

      c. 给框添加overflow:hidden

      d. 利用:after伪类和内容声明在框的末尾添加新的内容

三. 3种定位:

  1. 相对定位:无论是否移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其他框。即提高层级。
  2. 绝对定位:使元素的位置与文档流无关,因此不占据空间。普通文档流中其他元素的布局就像绝对定位的元素不存在时一样。如果扩大绝对定位的框,周围的框不会重新定位。
  3. 固定定位:

时间: 2024-10-07 06:07:00

读《精通css》--第三章可视化格式模型的相关文章

三种可视化格式模型:普通文档流、相对定位与绝对定位、浮动

在CSS中是有三种定位机制的:普通文档流.浮动和绝对定位.在未指定其它两种定位机制的情况下,所有框都是在普通文档流中定位的. 普通文档流: 普通文档流,顾名思义,就是根据块级元素的标签在HTML里的顺序,像水流一样,从上至下.当然对于行内元素而言,还是在一行中水平排列的. 这里插入一个积累的小知识点. 行内元素可 以在水平(内间距.边框.外边距)方向上修改它们水平尺寸,但是在垂直方向上对行内元素的高度是毫无影响的,还有就是直接定义行内元素的 width/height也是毫无影响.对与行内元素来说

第3章 可视化格式模型

一·盒模型 1 IE 和盒模型 IE早期版本包括IE6,在混杂模式下使用自己的非标准盒模型,其width属性不是内容的宽度,而是内容,内边距,和边框宽度的总和.因此,IE专有的盒模型使元素预期小.目前最好的解决方法是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素或子元素.其他方法见后. 2 外边距叠加 两个或多个垂直外边距相遇,将叠加形成一个外边框,高度等于两者中的较大者. 可以利用外边距使段落之间的空间保持一致. 只有在普通文档流中才会叠加,行内框,浮动,绝对

CSS——可视化格式模型

CSS的可视化格式模型 CSS中规定每一个元素都有自己的盒子模型(相当一规定了这个元素如何显示): 然后可视化格式模型则是把这些盒子模型按照规则摆放到页面上,也就是如何布局: 换句话说,盒子模型规定了怎么在页面上摆放盒子,盒子的相互作用等等: CSS的可视化格式模型就是规定了浏览器在页面中如何处理文档树 1.关键字: 包含块(Containing Block). 控制框(Controlling Box). BFC(Block Formatting Context). IFC(Inline For

可视化格式模型(visual formatting model)

对于可视化格式模型这个概念,官方的原话是这样的:How use agents process the document tree for visual media.翻译过来就是用户端在媒介中如何处理文档树.用户端这个对于我们来说通常指的就是浏览器.媒介呢,就是展示页面的介质,比如显示器.文档树呢,就是源文档中元素树的编码.树中,每一个元素恰好有一个父元素,当然除了根元素. 一.框的布局影响因素 可视化格式模型中,每一个文档树中得元素都会根据box module(盒模型)来产生零个或多个控制框.这

可视化格式模型(visual formatting model)系列

俗话说得好,万丈高楼平地起.在前端各种框架和工具层出不穷的今天,研究css标准.js的基础特性这些并不是浪费时间,相反打好了基础,才能更好的去拥抱变化. 这个东西呢,是准备当做一个系列来写,主要参考官方的标准和前辈们的一些归纳总结,不是全盘翻译,只是一个知识的梳理,查漏补缺.这个系列主要还是理论概念,我会尽量通过demo和自己平时遇到的一些具体问题来结合说明.这个系列呢,初步的考虑是以下几篇组成: 1.可视化格式模型(visual formatting model): 2.控制包含框的生成(Co

《java并发编程的艺术》读书笔记-第三章Java内存模型(二)

一概述 本文属于<java并发编程的艺术>读书笔记系列,第三章java内存模型第二部分. 二final的内存语义 final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.可以参照之前整理的关键字final.这里作者主要介绍final域的内存语义. 对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序. 初次读一个包含final域的对象的引用,与随后初次读这

&lt;java并发编程的艺术&gt;读书笔记-第三章java内存模型(一)

一概述 本文属于<java并发编程的艺术>读书笔记系列,继续第三章java内存模型. 二重排序 2.1数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性.数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之后,再读这个位置. 写后写 a = 1;a = 2; 写一个变量之后,再写这个变量. 读后写 a = b;b = 1; 读一个变量之后,再写这个变量. 上面三种情况,只要重排序两个操作的执行顺序,

CSS(三)解析盒子模型的浮动

上篇博客遗留了浮动和定位两个问题,只是对他们进行了简单的描述,今天仔细透透他们的底细,此篇为浮动篇. 浮动在这个CSS排版流行的年代发挥着越来越重要的作用,如同aline对定位网页元素的重要性一样,但它比aline更加功能强大. float主要功能是帮助对象在网页中对齐的,通过不同的命令使对象左右浮动,直到遇到border.padding.margin或其他对象边缘为止.别看这简单的浮动,却可以为我们的排版设计出各种靓丽的风格,下面介绍几种. 我把它们归为了以下两大类:普通浮动和嵌套浮动. 普通

读《精通css》--第二章基础知识

一. 常用的选择器:类型选择器和后代选择器.ID选择器和类选择器.伪类选择器(:link,:visited,:hover,:active,:focus) 二. 通用选择器:*  ( 通配符,也可以用来对某个元素的所有后代应用样式) 三. 高级选择器:CSS有向后兼容性,即如果浏览器不理解某个选择器,那么它会忽略整个规则.对于站点功能或布局很重要的任何元素上,都应该避免使用这些高级选择器. 1. 子选择器和相邻同胞选择器:> +    (IE6不支持) 2. 属性选择器:根据属性是否存在 或者 属