简言之,两者的定位原点都是其包含块区域的左上角;只是两种定位元素的包含块有所不同,得出的表明结论就是上述几位所说的。我简单的说一下我对包含块的一些理解:
包含块(containing block
):用来确定和影响元素的尺寸和位置属性的矩形区域;
The size and position of an element are often impacted by its containing block. Percentage values that are applied to the width, height, padding, margin, and offset properties of an absolutely positioned element (i.e., which has its position set to absolute or fixed) are computed from the element's containing block. ——MDN
一个元素的包含块完全受其position
属性值的影响:
static
或relative
:最近的块级(display
属性值为block
,inline-block
或list-item
)祖先元素的content-box
区域;或者最近的建立格式上下文的祖先元素,比如:table
容器,flex
容器,grid
容器或块级容器。
absolute
:最近的非static
(fixed, absolute, relative, or sticky)祖先元素的padding-box
区域。
fixed
:可视窗口viewport
本身(属于continuous media
类型时)或页面区域page area
(属于paged media
类型时),即初始包含块;
当属性值为fixed
或absolute
时,其包含块还有可能是最近的含有transform
或perspective
值不为none
的祖先元素的padding-box
区域。
注:html
元素的包含块叫做初始包含块(initial containing block
),它具有可视窗口(用于连续媒体)或页面区域(用于分页媒体)的尺寸
本文向大家介绍position的relative和absolute分别是相对谁进行定位的?相关面试题,主要包含被问及position的relative和absolute分别是相对谁进行定位的?时的应答技巧和注意事项,需要的朋友参考一下 relative 相对自身定位 absolute 相对最近的position 不为static的父元素
本文向大家介绍说说position的absolute和fixed共同与不同点分别是什么?相关面试题,主要包含被问及说说position的absolute和fixed共同与不同点分别是什么?时的应答技巧和注意事项,需要的朋友参考一下 共同点:都能让元素定位 不同点: position: absolute; 是根据定位父级定位,而position: fixed; 是根据浏览器窗口定位。
本文向大家介绍relative定位规则?相关面试题,主要包含被问及relative定位规则?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。 在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
position 属性指定了元素的定位类型。 position 属性的五个值: fixed 定位 元素的位置相对于浏览器窗口是固定位置。 即使窗口是滚动的它也不会移动:p.pos_fixed { position:fixed; top:30px; right:5px; } 注意: Fixed 定位在 IE7 和 IE8 下需要描述 !DOCTYPE 才能支持。 Fixed定位使元素的位置与文档流无
本文向大家介绍两个嵌套的div,position都是absolute,子div设置top属性,那么这个top是相对于父元素的哪个位置定位的?相关面试题,主要包含被问及两个嵌套的div,position都是absolute,子div设置top属性,那么这个top是相对于父元素的哪个位置定位的?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: margin的外边缘
相对窗口、文档、锚、光标/鼠标等元素定位一个元素。 如需了解更多有关 .position() 方法的细节,请查看 API 文档 .position()。 默认功能 使用表单控件配置位置,或者拖拽被定位的元素来修改它的偏移量。向四周拖拽父元素来查看碰撞检测。 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <ti