css核心:包含块(containing block)

css核心:包含块(containing block)

ID:14319687

大小:134.00 KB

页数:8页

时间:2018-07-27

css核心:包含块(containing block)_第1页
css核心:包含块(containing block)_第2页
css核心:包含块(containing block)_第3页
css核心:包含块(containing block)_第4页
css核心:包含块(containing block)_第5页
资源描述:

《css核心:包含块(containing block)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CSS核心:包含块(ContainingBlock)2010年07月16日包含块(ContainingBlock)是视觉格式化模型的一个重要概念,它与框模型类似,也可以理解为一个矩形,而这个矩形的作用是为它里面包含的元素提供一个参考,元素的尺寸和位置的计算往往是由该元素所在的包含块决定的。在阅读本文前,请先理解一下:文档结构元素类型CSS的direction属性1视口(viewport)浏览器的窗口一般由3个部分组成,如图5所示。图5浏览器的视口连续媒介的用户端(例如电脑的浏览器)通常提供给用户一个视口(屏幕上的一个窗口或浏览区域),用户通过它

2、来浏览文档。当视口尺寸改变时(例如调整浏览器的窗口大小),用户端可能会改变文档的布局。如果视口比文档设定的大小要小,用户端往往会提供滚动机制(例如浏览器的滚动条)。对于一个渲染区域而言,最多只能有一个视口,不过用户端可以对多个渲染区域加以渲染(即对同一文档提供不同的视口)。2包含块在浏览器生成显示的页面的时候,每一个框都有一个定位,这个定位受其包含块的影响,不过它不被包含块所限制,而且可能会溢出到包含块之外。CSS手册中,对于一个元素的包含块的定义如下:1根元素存在的包含块称为初始包含块。在(X)HTML中,根元素是html元素(尽管有的浏览器

3、会不正确地使用body元素)。而初始包含块的direction属性与根元素相同。(direction属性指定了块的基本书写方向,它还规定了表格列布局的方向、水平溢出的方向等。)初始包含块的宽度可以由根元素的width属性指定。如果该属性取值为“auto”,用户端提供初始宽度(如,视口的当前宽度)。初始包含块的高度可以由根元素的height属性指定。如果该属性取值为“auto”,包含块的高度将调整以适应文档内容(即由其内容决定其高度)。初始包含块不可以被定位或浮动(即,用户端忽略根元素的position和float属性)。2对于其它元素:如果该元

4、素的定位(position)为“relative(相对)”或者“static(静态)”,它的包含块由它最近的块级、单元格(tablecell)或者行内块(inline-block)祖先元素的内容框创建。3如果元素设定了“固定定位(position:fixed)”,包含块由视口创建。4如果元素设定了“绝对定位(position:absolute)”,包含块由最近的position属性为“absolute”、“relative”或者“fixed”的祖先元素创建,方法如下:4如果祖先元素是行内元素,包含块取决于祖先元素的direction属性:如果d

5、irection为“ltr”,包含块的顶、左边是该祖先元素创建的第一个框的顶、左补白边,它的底、右边是该祖先元素创建的最后一个框的底、右补白边。如果direction为“rtl”,包含块的顶、右边是该祖先元素创建的第一个框的顶、右补白边,它的底、左边是该祖先元素创建的最后一个框的底、左补白边。1否则,祖先的补白边形成包含块。1如果不存在这样的祖先元素,则元素的包含块为初始包含块。上面的定义太抽象,所以我整理了一个流程图来说明一下,如图6所示。图5浏览器的视口提示:此时特别需要注意的是,祖先元素是行内元素时,浏览器会出现不一致的解释方式,大家可以

6、在不同的浏览器内测试一下。例如下面的XHTML文档,其文档结构及在浏览器内的显示如图7所示。当元素都没有定位的时候,包含块的创建如表1所示。2包含块::框模型::豆豆猫的窝【div1】的文字。这里是【p1】。

这里是【p2

7、】【em1】【strong1】。

图7文档结构图表1无定位元素的包含块的创建产生框的元素为框创建包含块的元素body初始包含块(与用户端相关)div1bodyp1div1p2div1em1p2strong1p2此时,如果对层“div1”设定定位:#div1{position:absolute;top:30px;left:20px;background:#0C6;}则“div1”层的包含块不再是“body”,而

8、是初始包含块(因为没有其它定位祖先框)。如果再增加对“em1”的定位:#em1{position:absolute;top:60px;left:50p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
相关标签