CSS 绝对定位与自动边距冲突
在 CSS 中,绝对位置属性会从文档的正常流程中删除元素,并且它根据顶部、左侧、右侧和底部属性进行定位。但是,当 margin-left 和 margin-right 属性设置为 auto 并具有绝对位置时,它们没有任何效果。
这是因为 margin-left: auto 和 margin-right: auto 属性尝试将元素置于其包含块的中心。对于具有绝对位置的元素,其包含块是文档主体。但是,文档正文本身没有设置宽度,因此浏览器无法确定元素应该居中的位置。
另一方面,当position属性设置为relative时,元素会从正常流,但其假想框仍保留在文档流内。在这种情况下,当 margin-left 和 margin-right 设置为 auto 时,边距将根据包含块的宽度计算,对于相对定位的元素来说,该宽度仍然是文档正文。但是,由于文档正文具有设定的宽度,浏览器可以正确确定元素应居中的位置。
要使用绝对定位使元素居中:
相反使用 margin-left: auto 和 margin-right: auto 时,可以将 left 和 right 属性设置为 50%。这将使元素在文档正文中居中。您还需要指定顶部和底部属性以防止元素移出屏幕。
以上是为什么自动边距不能与 CSS 中的绝对定位一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!