eve*_*ill 4 css specifications
CSS规范中有一些章节提到"传播到视口"; 例如:计算高度.
当"溢出"不计算为"可见"但已传播到视口时,此部分也适用于正常流中的块级非替换元素.
什么样的属性可以传播?它是否与子元素从其父元素继承属性的规则相矛盾?
随着报价的状态,该overflow属性是能够被传播body到html,从html视口:
UA必须将根元素上的"溢出"属性集应用于视口.当根元素是HTML"HTML"元素或XHTML"html"元素,并且该元素具有HTML"BODY"元素或XHTML"body"元素作为子元素时,用户代理必须改为应用"溢出"属性从第一个这样的子元素到视口,如果根元素上的值是"可见的".用于视口时的"可见"值必须解释为"自动".传播值的元素必须具有"可见"的"溢出"的已使用值.
可以这种方式传播的另一个属性是background:
由于没有元素对应于画布,为了允许画布的样式,CSS传播根元素的背景(或者,在HTML的情况下,传播<body>元素),如下所述.
3.11.1.画布背景和根元素
根元素的背景成为画布的背景,其背景绘画区域扩展到覆盖整个画布.但是,任何图像的大小和位置都相对于根元素,就像它们仅为该元素绘制一样.(换句话说,背景定位区域是根元素确定的.)根元素不会再次绘制此背景,即其背景的使用值是透明的.
3.11.2.画布背景和HTML <body>元素
对于其根元素是HTML
HTML元素[HTML401]或XHTMLhtml元素[XHTML11]的文档:如果根元素上的'background-image'的计算值为'none'且其'background-color'为'transparent',用户代理必须从该元素的第一个HTMLBODY或XHTMLbody子元素传播背景属性的计算值.该BODY元素的背景属性的已使用值是它们的初始值,并且传播的值被视为在根元素上指定它们.建议HTML文档的作者指定BODY元素的画布背景而不是HTML元素.
此传播行为是出于历史原因(<body background="..." bgcolor="...">)以及使作者能够设置整个页面背景的样式而设置的,这通常不能仅通过html或body元素完成,而无需先删除其默认边距并强制它们填充页面.
作者没有意识到这种行为谁尝试这两个属性适用于body和html可惊讶由结果,尤其是在比较与其他元素的行为.另一方面,作者也利用这种行为为可追溯到15年前的浏览器错误创建了有趣的解决方法.
此行为与继承不冲突,因为它在相反的方向上工作.继承将属性值从父元素"传播"到子元素; 此行为从子盒到父盒传播属性值(body至html,并html分别对视口).
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |