据我所知,绝对定位是相对于一个包含块,它提供了一个定位上下文,默认情况下它是文档。因此,默认情况下,应该针对html文档的边缘而不是相对于视口边缘(浏览器窗口)来指定绝对定位?
例如,假设html文件具有的2000像素宽度的元件E,那么这个文档的宽度大约是2000像素,因此以下代码:
#abs
{
position: absolute;
top: 128px;
right: 0px;
width: 100px;
}
应该放置的元件#abs在文档的最右侧(文档的最右边和最左边之间的距离大约为2000px)。相反,#abs放置在视口的右侧。我错过了什么?
感谢名单
呃,这完全令人困惑 - 我认为“视口是最上面的元素”,你的意思是说,视口包含页面中的所有其他元素,包括元素#abs?但是,如果是这种情况,那么视口也包含#wide元素(宽度为2000px)。如果视口也包含#wide元素,那么视口的宽度至少为2000px,因此视口的最右侧应该是离视口最左侧2000px ?! – carewithl 2009-12-22 19:35:47
另外,您暗示浏览窗口只是浏览器在水平栏滚动到文档最左侧时显示的窗口,而据我所知,视口是当前由浏览器显示的文档的任何部分,即使是当水平滚动条滚动到该文档的最右侧时,浏览器显示的文档的一部分(假设文档非常宽)? – carewithl 2009-12-22 19:39:40
视口并不意味着你的想法。视口是浏览器的可见部分。如果拖动浏览器的宽度为900px,则视口为900px。视口不会根据内部内容进行更改。 视窗不是页面上的实际元素,不像
。如果包含2000像素宽的元素,但不包含视口,则的确为2000像素。视口与您制作浏览器窗口的大小完全相同。 – idrumgood 2009-12-23 16:27:11