想要滚动时固定的固定背景吗? background-attachment: fixed
通常在移动浏览器中失败。这是实现这一效果的解决方法,“黑客”。
让我们用两种背景类型检查问题:线性梯度和图像。
对于滚动的固定梯度,我们可能会使用此CSS:
1 2 3 4 5 6 7 |
|
在Android Chrome和Firefox上,梯度滚动,然后跳。这似乎与浏览器的难度实时重新渲染梯度有关,当时URL栏隐藏/出现。 iOS Safari表现出类似的行为。
图像的问题是相同的:
1 2 3 4 5 6 7 8 |
|
background-attachment: fixed
还忽略了height
属性,相对于视口而不是元素的高度计算位置。这可能是因为background-attachment: fixed
使用最小的视口,而元素则使用最大的视口。当URL栏更改可见度时,视口单元(VH)不会调整大小。
caniuse
突出显示浏览器与background-attachment: fixed
。
该解决方案涉及删除background-attachment: fixed
并使用单独的元素进行固定。如果background-attachment: fixed
使用最小的视口,让我们使用使用最大的元素。
创建两个divs:一个用于背景,一个用于内容:
1 2 3 4 |
|
像这样的样式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
这对于背景图像也类似:
1 2 3 4 5 6 7 8 9 |
|
虽然在URL栏藏书时可能会发生较小的滚动,但主要问题得到了解决。
这个“黑客”使用<div>而不是一个<code><img alt="固定背景附件黑客" >
标签,可能会影响语义和可访问性。如果图像对于含义至关重要,请使用<img alt="固定背景附件黑客" >
使用适当的alt
文本更好,即使这意味着黑客无法正常工作。自动内皮可能仍会引起问题的底部导航栏。在这种情况下,可能有必要使用JavaScript。
以上是固定背景附件黑客的详细内容。更多信息请关注PHP中文网其他相关文章!