【问题标题】:How CSS positioning works algorithmicallyCSS定位如何通过算法工作
【发布时间】:2022-12-11 04:18:07
【问题描述】:

我需要为 GUI 库实现一个简单(即不需要动画和高级伪元素)但灵活的定位系统。网上有很多关于如何在 CSS 中使用定位的参考资料,但关于它在幕后如何工作的资料却不多。我正在研究 CSS 作为一种技术来获取灵感,因为它已经过良好的测试和广泛使用。

感谢您为我指明正确方向的任何帮助。

【问题讨论】:

  • 目前还不清楚你的问题是什么,而且对于 StackOverflow 来说似乎太宽泛了

标签: css algorithm user-interface


【解决方案1】:

要回答这个问题,了解 CSS 定位的一般工作原理会很有帮助。在 CSS 中,可以使用 position、top、bottom、left 和 right 属性定位元素。

position 属性可以设置为多个值之一,包括 static、relative、absolute 和 fixed。这些值确定元素在文档中的定位方式以及它将如何响应滚动和其他用户操作。

static 是 position 属性的默认值。具有静态位置的元素不受顶部、底部、左侧和右侧属性的影响,并且在页面滚动时它们不会移动。

相对元素相对于它们在文档中的正常位置进行定位。当设置了 top、bottom、left 和 right 属性时,元素将相对于其正常位置移动。

绝对元素相对于位置属性设置为非静态的最近的祖先元素定位。如果不存在这样的祖先,元素将相对于初始包含块(即视口)定位。

fixed 元素相对于初始包含块(即视口)定位,并且当页面滚动时它们不会移动。

除了 position 属性之外,top、bottom、left 和 right 属性可用于指定元素与其包含块的边缘的距离。这些属性的工作方式因位置属性的值而异。

如果位置属性设置为静态、相对或绝对,则顶部、底部、左侧和右侧属性将指定元素与其包含块的相应边缘的距离。

如果 position 属性设置为 fixed,则 top、bottom、left 和 right 属性将指定元素与初始包含块(即视口)各自边缘的距离。

总体而言,使用 CSS 定位元素的算法包括以下步骤:

确定元素的位置属性的值。 如果 position 属性设置为 static,元素将根据文档的正常流定位,不受 top、bottom、left 和 right 属性的影响。 如果 position 属性设置为 relative,元素将相对于其在文档中的正常位置定位,top、bottom、left 和 right 属性将用于使元素偏离其正常位置。 如果 position 属性设置为 absolute,元素将相对于最近的 position 属性设置为非静态的祖先元素定位。如果不存在这样的祖先,元素将相对于初始包含块(即视口)定位,并且 top、bottom、left 和 right 属性将用于指定元素与各自边缘的距离包含块。 如果 position 属性设置为 fixed,元素将相对于初始包含块(即视口)定位,top、bottom、left 和 right 属性将用于指定元素与各自。

希望我能正确理解您的问题,并且能帮上一点忙。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-26
    • 2023-03-14
    • 2015-07-10
    • 2011-10-03
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    相关资源
    最近更新 更多