在没有背景附件的情况下将背景渐变扩展到整个身体:已修复

2023-12-02

我想要一个背景渐变,例如

background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(2, 126, 174, 0.9))

在我的文档正文上,它延伸到正文的整个高度 - 并与正文一起滚动。

Using

background-attachment: fixed;

我得到了(视口的)整个高度,但它保持固定。

background-attachment: scroll;

让我滚动,但它只是延伸到视口高度。

有什么办法可以两者兼得吗?

Edit:

正如 Boltclock 所指出的,我确实在基本测试页面上通过“background-attachment:scroll”获得了预期的行为。

With

<body>
   <div id="stretch">Content</div>
</body>

and

  body {
     background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(2, 126, 174, 0.9));
  }

  #stretch {
     height: 2000px;
  }

一切正常:渐变延伸到整个主体(主体高 2000 像素),并随内容滚动。

然后我添加

  html, 
  body {
     height: 100%;
  }

这是页面所基于的基本模板所做的事情。

为了让身体再次膨胀,我添加

  height: auto;

并且主体回到 2000px 高度。

然而,渐变保持在 HTML 高度 - 然后重复。

我在这里缺少什么?


发生这种情况是因为渐变背景根据其容器调整大小(这包括html and body),以及用于确定尺寸的计算html and body分别对应于视口。

我实际上之前在回答中写过类似的内容另一个问题。你的有点不同,所以我先引用相关部分:

背景有特殊行为当应用于body and/or html。当您应用背景时body不碰html,发生的情况是主体背景被传播到视口,并且该背景的行为就好像它是在html:

对于根元素是 HTML 的文档HTML元素或 XHTMLhtml元素:如果根元素上“background-image”的计算值为“none”并且其“background-color”为“transparent”,则用户代理必须从该元素的第一个 HTML 传播背景属性的计算值BODY或 XHTMLbody子元素。使用的值BODY元素的背景属性是它们的初始值,传播的值被视为在根元素上指定。

在您的情况下,如果您使用的模板没有指定任何背景html or body,那么这种背景传播行为就会导致梯度的高度为html代替body.

要解决此问题,您需要重置height的值html仅元素,并分配min-height反而:

  html {
     height: auto;
     min-height: 100%;
  }

这消除了高度限制html元素,允许渐变随着页面的内容延伸,同时如果页面没有足够的内容,则保持其至少与视口一样高(如果这不重要,则不需要设置min-height).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有背景附件的情况下将背景渐变扩展到整个身体:已修复 的相关文章

随机推荐

  • 为什么 try {...} finally {...} 好;尝试{...}抓住{}不好?

    我见过有人说使用不带参数的 catch 是一种不好的形式 特别是如果该 catch 不执行任何操作 StreamReader reader new StreamReader myfile txt try int i 5 0 catch No
  • OpenCV 匹配模板得分不佳

    我正在尝试使用 OpenCV 进行一些图像匹配 并使用 cvMatchTemplate 函数 我拍摄了一张样本图像 然后将其一部分剪下来作为模板 然后尝试匹配它 当我这样做时 cvMatchTemplate 函数正确找到子图像并给它最好的分
  • 无法跨库项目使用 .aidl 文件吗?

    本着重用代码的精神 我正在尝试创建一些库项目 但是 我似乎在定义跨库的 aidl 文件时遇到了问题 问题是这样的 在库 A 中 我有 Foo java 和 Foo aidl Foo java 是 Parcelable 所以 aidl 声明是
  • 在 Windows XP 中安装 Xcode

    我想知道我是否可以在 Windows XP 上安装 Xcode 如果可能 还请提供文档链接 非常感谢您提前提供的帮助 这当然是可能的 有两条路线 在第二个分区 磁盘上安装 OSx86 又名 iATKOS Kalyway 并进行双引导 在 V
  • Python urllib2 进度挂钩

    我正在尝试使用 urllib2 http 客户端在 python 中创建下载进度条 我查看了 API 以及谷歌 似乎 urllib2 不允许您注册进度挂钩 然而 较旧的已弃用的 urllib 确实具有此功能 有谁知道如何使用 urllib2
  • Python 3,从 gzip 文件读取/写入压缩的 json 对象

    对于Python3 我遵循 Martijn Pieters 的代码有了这个 import gzip import json writing with gzip GzipFile jsonfilename w as fout for i in
  • 如何使用正则表达式在字符串中查找美国邮政编码?

    填写代码以检查传递的文本是否包含可能的美国邮政编码 格式如下 正好 5 位数字 有时 但并非总是 后跟带有 4 位数字的破折号 邮政编码前面至少需要一个空格 并且不能位于文本的开头 无法产生所需的输出 import re def check
  • CUDA cudaMalloc

    我已经开始编写一个新的 CUDA 应用程序 然而 我一路上遇到了一个有趣的弯路 对变量 x 调用第一个 cudaMalloc 第一次失败 但是 当我第二次调用它时 它返回 cudaSuccess 最近升级到CUDA 4 0 SDK 这是一个
  • 使用 Amazon-Lex 进行评分/意图置信度

    我尝试使用 amazon lex PostText 获取评分值或意图置信度值 但 json 文件中根本没有响应元素 https docs aws amazon com de de lex latest dg API runtime Post
  • IE 在使用 NTLM 身份验证时随机发送空 POST 正文(使用 Angular 到 Spring)

    我们发现 IE 11 中看似随机的调用缺少 POST 经过进一步检查 来自浏览器的请求包含 NTLM 协商令牌 我们有时也会在 GET 上看到此令牌 但它们不受主体问题的影响 因为它们没有主体问题 Chrome和FF没有这个问题 进一步的调
  • 选择包含 R 中每日最大值的行

    因此 我想对数据框进行子集化以选择具有每日最大值的行 Site Year Day Time Cover Size TempChange ST1 2011 97 0 0 Closed small 0 97 ST1 2011 97 0 5 Cl
  • TFS 2013 获取所有 TFS 组,包括 Windows 组

    我正在做这个TFS 2013 以获得所有TFS组的项目级别许可 但我无法获取 Windows 组 我使用以下代码列出组 var applicationGroups identityManagementService ListApplicat
  • jvisualvm:卡在“正在加载堆转储”屏幕上

    我使用以下命令使用 hprof 创建了一个堆转储文件 java agentlib hprof cp jars trove jar bin com mysite MyApp 这样就成功创建了大约 5MB 的文件 java hprof txt
  • 以声明方式描述自定义控件属性时缺少智能感知

    因此 我已经在这个项目上工作了几天 但一直无法解决为用户控件 ascx 请注意 的自定义内部属性获取智能感知支持的问题 我已经多次看到这个问题的解决方案 使用服务器控件 cs 请注意 在此写出article很好 使用 ascx 控件时 除了
  • 如何消除带括号的表达式中的子选择的歧义?

    我有以下表达式符号 expr OpenParen expr Comma expr Comma CloseParen parenExpr OpenParen simpleSelect CloseParen subSelectExpr 不幸的是
  • 无法使用 TestFlight 安装 xCode 4.3 beta 应用程序

    我刚刚升级到 xCode 4 3 并用它生成了一个 iPad 应用程序的新版本 大约 50 名 Beta 测试人员已经使用了几个月 我像往常一样通过 TestFlight 分发了测试版应用程序 大多数测试人员升级没有问题 但一些测试人员在尝
  • 如何附加和分离 Docker 的进程?

    I can attach to a docker process but Ctrl C doesn t work to detach from it exit basically halts the process 建议的工作流程是什么 让
  • WebSphere MQ 连接调整

    我有一个应用程序 它使用 MDB 激活规范和队列连接工厂从 WMQ 获取 放置消息 该应用程序预计最大负载为 80 tps Websphere Application Server 和 WMQ 都是集群式的 每个应用程序服务器都连接到单独的
  • TF 对象检测 API - 并非所有类都被检测到且行为异常

    Setup ubuntu 16 04 LTS 4 个 vCPU 30GB 内存 nvidia K80 GPU 带 12GB 内存 CUDNN 8 0 x64 TF版本1 3 目标 使用TF对象检测API检测人脸 人物 手枪 步枪 autom
  • 在没有背景附件的情况下将背景渐变扩展到整个身体:已修复

    我想要一个背景渐变 例如 background linear gradient to bottom rgba 0 0 0 0 3 rgba 2 126 174 0 9 在我的文档正文上 它延伸到正文的整个高度 并与正文一起滚动 Using