【问题标题】:Starting point of a html document and a viewport ( display area )html 文档的起点和视口(显示区域)
【发布时间】:2009-09-21 17:40:50
【问题描述】:

绝对定位是相对于提供定位上下文的包含块;默认情况下是文档


a) 所以如果绝对定位是相对于文档的,那么我们是否可以将文档的起点想象为一个二维坐标系,其原点位于视口的左上角(假设我们将浏览器滚动到顶部和最左边)?


b) 我假设浏览器将视口的最右侧也视为文档的最右侧?!因此当viewport的宽度为800px时,文档的宽度也是800px,但是当我们将viewport的大小调整为400px时,文档的宽度也是400px?

也就是说,如果某个元素的宽度是 3000px,但如果 viewport 只有 400px 的宽度,那么 400px 也是文档的宽度,不管元素的宽度是 3000px 吗?


感谢


编辑:

抱歉一直拖到这里:

1)

您可以告诉浏览器忽略视口之外的任何内容

a) 嗯,overflow 属性似乎与决定浏览器是否应该提供滚动条来查看整个元素没有太大关系。相反,这个属性似乎只处理内容溢出元素的框?!


b) 因此,我假设即使溢出设置为隐藏,如果元素的宽度设置为 3000 像素,浏览器仍会提供水平滚动条?


c) 那么当我们有比视口宽的元素时,是否有其他属性决定是否应该提供水平滚动条?


2)

我不确定这是怎么发生的(见 A)

我不能确定,但​​一个元素可能将 padding 和 margin 属性设置为很大的数字,并且浏览器没有提供滚动条,而是从元素中删除了 margin 和 padding

【问题讨论】:

    标签: html css xhtml


    【解决方案1】:

    A - 是的。但是,视口并不总是浏览器窗口。例如,一个框架被视为一个视口。

    B - 文档可能大于视口。这就是导致滚动条的原因。例如,大多数网站的高度大于大多数浏览器视口,这就是为什么许多网站都有垂直滚动条的原因。

    【讨论】:

    • 但是如果文档的宽度是 +3000px (当一个元素的宽度设置为 3000px 时),那么为什么浏览器不提供水平滚动条(至少在某些情况下它不提供 - 我希望我能记得那些案例是什么:()?
    • 显示滚动条取决于 CSS。您可以告诉浏览器忽略视口之外的任何内容,或者使用 overflow 属性显示滚动条:w3schools.com/Css/pr_pos_overflow.asp
    • a) 知道为什么即使 overfloat 设置为可见,也没有提供水平滚动条? b)假设提供了水平滚动条,当此滚动条尽可能向右滚动时,该点是否被认为是文档的右边缘? c) 但是如果没有提供滚动条(因此比视口宽的元素会被剪掉),那么文档的宽度是否等于视口的宽度?
    • A- 我想不出为什么。只有一个浏览器或更多? B- 是的,除非在滚动时,javascript 会移动或调整超出该边缘的内容。 C- 我不确定这是怎么发生的(参见 A),但是文档的宽度必须包含所有项目,即使它们超出了视口宽度。
    • 嗨 - 我已经编辑了我的第一篇文章(如果你愿意再给我一次帮助) - 无论如何,谢谢你帮助我
    【解决方案2】:

    文档的宽度将是 3000 ,窗口 400

    你可以使用固定定位而不是绝对定位

    固定定位使用视口坐标,因此您可以创建非滚动背景,例如

    【讨论】:

    • 但是如果文档的宽度是 +3000px (当一个元素的宽度设置为 3000px 时),那么为什么浏览器不提供水平滚动条(至少在某些情况下它不提供 - 我希望我能记得那些案例是什么:()?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    相关资源
    最近更新 更多