什么样的属性可以传播?它是否与子元素从其父元素继承属性的规则相矛盾?当“overflow”未被计算为“visible”但已传播到视口时,此部分也适用于正常流中的块级非替换元素。
什么样的属性可以传播?它是否与子元素从其父元素继承属性的规则相矛盾?当“overflow”未被计算为“visible”但已传播到视口时,此部分也适用于正常流中的块级非替换元素。
overflow
property可以从body
传播到html
,也可以从html
传播到视口:
另一个可以以这种方式传播的属性是用户代理必须将设置在根元素上的 'overflow' 属性应用于视口。当根元素是HTML“HTML”元素或XHTML“html”元素,并且该元素具有HTML“BODY”元素或XHTML“body”元素作为子元素时,如果根元素上的值为“visible”,则用户代理必须将第一个此类子元素上的 'overflow' 属性应用于视口。当视口使用“visible”值时,必须将其解释为“auto”。传播值的元素必须具有“visible”的“overflow”的使用值。
background
:根元素的背景成为画布的背景,其背景绘制区域扩展到覆盖整个画布。但是,任何图像都被大小和位置相对于根元素进行定位,就好像它们只为该元素绘制一样。(换句话说,背景定位区域与根元素确定。)根元素不会再次绘制此背景,即其背景的使用值为透明。
body
元素对于根元素为HTML HTML
元素[HTML401]或XHTML html
元素[XHTML11]的文档:如果根元素上的“background-image”的计算值为“none”,并且其“background-color”为“transparent”,则用户代理必须从该元素的第一个HTML BODY
或XHTML body
子元素中传播背景属性的计算值。该BODY
元素的使用值的背景属性为其初始值,并且传播值被视为在根元素上指定的值。建议HTML文档的作者为BODY
元素指定画布背景,而不是HTML
元素。
<body background="..." bgcolor="...">
),同时也使作者能够样式化整个页面背景,通常情况下无法仅通过html
或body
元素完成,除非首先删除它们的默认边距并强制填充页面。
对于不了解这种行为的作者,他们尝试将这两个属性应用于body
和html
可能会被结果 惊讶, 特别是当将此行为与其他元素进行比较时。另一方面,作者也利用这种行为来创建有趣的解决浏览器错误的方法,可以追溯到15年前。
这种行为不会与继承发生冲突,因为它是相反的方向。继承将属性值从父元素传递到子元素;而这种行为将属性值从子框传递到父框(分别从body
到html
,然后到视口)。