第3章 可视化格式模型

一·盒模型

  1 IE 和盒模型

    IE早期版本包括IE6,在混杂模式下使用自己的非标准盒模型,其width属性不是内容的宽度,而是内容,内边距,和边框宽度的总和。因此,IE专有的盒模型使元素预期小。目前最好的解决方法是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素或子元素。其他方法见后。

  2 外边距叠加

    两个或多个垂直外边距相遇,将叠加形成一个外边框,高度等于两者中的较大者。

    可以利用外边距使段落之间的空间保持一致。

    只有在普通文档流中才会叠加,行内框,浮动,绝对定位框之间的外边距不叠加。

  3 定位

    CSS中3种基本定位机制:普通流,浮动,绝对定位

    块级框

    行内框:行内框的高度总是足以容纳它包含的所有行内框,因此,改变行内框尺寸的唯一方法是修改行高或水平边框,内边距或外边距。

    css2.1的display:inline-block;属性可让元素像行内元素一样水平排列,但框的内容符合块级框的行为,例如可设置高度,宽度,垂直外边距和内边距。(Firefox3.0+,IE8+)

    相对定位:相对于元素在文档流中的初始位置。无论是否移动,元素仍然占据原来空间,因此移动元素会导致它覆盖其他框。

    绝对定位:先对于距离它最近的祖先元素,如果不存在则相对于初始包含块(可能是画布或html元素)。绝对定位脱离文档流,因此不占用空间,普通文档流中其他元素布局就好像该元素不存在一样。可以通过z-index属性来控制框的叠放次序,z-index值越大,框在栈中的位置越高。

    父元素进行相对定位,子元素进行绝对定位。如果扩大绝对定位的框(如,通过则增加字号),周围的框不会重新定位,因此,尺寸的任何改变都会导致绝对定位的框产生重叠。(bug:在IE5.5和ie6中,如果相对与相对定位的框的右边或底部设置绝对定位的框,需要确保相对定位的框已经设置了尺寸。否则会错误的相对于画布定位。)

    固定定位:(Ie6及更低版本不支持固定定位,IE7部分支持但实现中有许多bug,因此可以使用javascript实现此此效果)

    浮动:浮动将脱离文档流。

       如果浮动元素的高度不同,那么在移动时可能被其他元素卡住。

    行框和清理:创建浮动框可使文本围绕图片。

       clear:left,right,both,none;在清理元素时,浏览器在元素顶部添加足够的外边框是元素的顶部边缘垂直下降到浮动框下。因此对于元素的清理实际上是为元素留出了垂直空间。利用清除浮动可以解决前面垂直高度改变影响周围元素的问题。

       添加一个可以进行清理的空元素可以使容器元素包围浮动元素。也可以选择浮动div容器。

       

<style type="text/css">

.clear {
  clear: both;
}

.news {
  background-color:#eaeaea;
  border: solid 1px #999;
  width: 500px;
}

.news img {
  float: left;
}

.news p {
  float: right;
}
</style>
</head>

<body>

<div class="news">
<img src="img/atol.jpg" width="120" height="180" />
<p>some text some text some text some text some text some text some text some text some text some text some text some text some text some text some text some text some text  </p>
<div class="clear"></div>
</div>

      overflow:auto,hidden会自动清理包含浮动的任何元素。这种方法在某些情况下会产生滚动条或截断内容。

      在使用css方法:

      

.clear :after{
     content:‘ . ‘;
     height:0;
     visibility:hidden;
     display:block;
     clear:both;
}

      

        

          

    

    

时间: 2024-08-02 18:55:28

第3章 可视化格式模型的相关文章

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

一. 盒模型: 1. IE 和 盒模型: 非标准盒模型 2. 外边距叠加:什么情况下外边距会叠加? 1)两个垂直的块元素 2)两个包含关系的块元素并且之间没有padding和border隔开 3)外边距与自身发生叠加,空元素,没有padding和border 4)空元素的外边距碰到另一个空元素的外边距. 解决办法:行内元素.浮动元素.绝对定位元素的外边距不会叠加.如果是包含关系的话,加上padding或者border. 二. 3种可视化格式模型: 1. 普通流:块级元素和行内元素. 1)块级框从

可视化格式模型(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

CSS——可视化格式模型

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

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

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

精通css 高级web标准解决方案——可视化格式模型

1-盒模型的两种标准: IE :width 和 height属性 是包括padding和border在内的. w3c:width 和 height 属性,就是单纯的内容的宽高,padding 是内容之外的附加值. IE标准盒模型 w3c标准盒模型 我发现我以前总是记得有点混乱.现在绝对不会忘记了.box-sizing属性可以定义要使用哪种盒模型 解决这个问题分方法1:不要给元素添加具有指定宽度的内边距,尝试将内边距或者外边距添加到元素的父元素或者子元素. 方法2:待补充?? 2-对box-siz

CSS可视化格式模型(CSS Mastery随笔)

CSS渲染页面的时候,把每个文档元素看作是盒子. CSS盒子模型 margin,padding,border,内容. margin会出现margin折叠.上下元素的margin折叠.左右的不折叠.包含的元素之间marign也会折叠.margin折叠的好处是文档排版齐整. 每个元素都会有一个框.这个框分两种类型.块级元素的块框.行内元素的行内框. 行框:还有行框的概念,行框的高度由中间最高的行内框决定.设置行内框的高度.padding.margin并不影响行框的高度.行框的高度line-heigh

精通css 高级web标准解决方案——可视化格式模型-定位模型

CSS 中有三种定位机制:普通流.浮动.绝对定位.(默认为普通流) 改变文档流:display: inline-block; (支持到ie8及以上) 1-匿名块框: <div> 你好! <p>廖阿丽!</p> </div> 这一块中的“你好”,属于匿名块框,因为它没有与专门定义的元素想关联. 2-相对定位 元素相对定位就是相对于它本来的位置来定位的. <!DOCTYPE html> <html> <head> <ti

CSS3 可视化的格式模型

9.1 可视化格式模型介绍 本章和下一章描述了可视化格式模型:这种模型用于定义用户代理是怎样在可视化媒体(visual media)上处理文档树的. 在这个模型里,文档树上的每一个元素都会生成零个,一个或者多个盒子(根据盒子模型),这些盒子的布局由以下内容决定: 盒子的尺寸和类型 定位机制(普通流式(normal flow),浮动(float),绝对(absolute)定位) 文档树中各元素之间的关系 其他额外信息(例如,视口尺寸,图片的固有尺寸) 本章和下一章定义的属性同样适用于连续类媒体(c