让背景颜色延伸到溢出区域

2024-01-28

如果总计内容高度父级的大小是 10,000px 但overflow: auto元素是rendered高度为 700px 我如何强制aside子元素动态渲染为 10,000pxinstead默认 700px?当您开始滚动时,您可以看到白色背景小提琴 https://jsfiddle.net/4m1L2tLh/.

  • 不得添加更多元素(::after and ::before虽然是可以接受的)。
  • The aside元素的内容必须滚动main元素的内容通过#body元素(无position: fixed;).
  • The aside元素必须有它的background-color从最顶部 0 像素处拉伸到最底部(例如 5,000 像素或 10,000 像素)below最初可见的折叠。
  • The aside元素不能有自己的overflow: auto;.
  • 动态(对于知识较少的人来说)意味着我们可以not设置静态height, e.g. height: 10000px正如我们所愿not知道渲染的高度是多少。

在我的示例中,当您开始滚动绿色时background-color结束了,我想做aside元素一直延伸到内容底部。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Overflow Flex Box Issue</title>
<style type="text/css">
* {border: 0; margin: 0; padding: 0;}

aside
{
 background-color: #afa;
 order: 2;
 width: 20%;
}

body
{
 display: flex;
 flex-direction: column;
 height: 100%;
}

body > header
{
 align-self: stretch;
 background-color: #faa;
 flex: 0 1 auto;
 min-height: 56px;
 order: 1;
}

body > footer
{
 align-self: auto;
 background-color: #aaf;
 flex: 0 1 auto;
 min-height: 36px;
 order: 2;
}

html {height: 100%;}

main
{
 background-color: #cfc;
 order: 1;
 width: 80%;
}

#body
{
 display: flex;
 order: 2;
 overflow: auto;
}

</style>
</head>

<body>

<div id="body">
<main>
<article>
<p>article</p>
<p>article</p>
<p>article</p>
<div style="height: 10000px;">10,000px</div>
</article>
</main>
<aside><p>&#60;aside&#62;, 100% height only of visible area, it <em>should</em> be <em>100% of total parent height</em>.</p></aside>
</div>

<header>The body &#62; header element; element 2, order: 1;.</header>
<footer>The body &#62; footer element; element 3, order: 3;.</footer>

</body>
</html>

除非绝对定位,否则这对于 CSS 来说是不可能的。您需要使用 JavaScript。

问题是这样的:

Part I: background-color

您没有为内容元素定义高度(#body).

这意味着高度是内容驱动的。

背景颜色仅覆盖元素的宽度和高度。您可以在演示中看到这一点。一旦滚动开始,背景颜色就结束。这是因为溢出区域位于元素的宽度/高度区域之外。

从规格来看:

14.2 背景 https://www.w3.org/TR/CSS22/colors.html#background

作者可以指定元素的背景(即其渲染 表面)作为颜色或图像。就盒子 模型 https://www.w3.org/TR/CSS22/box.html#box-model, “背景” 指的是背景content, padding and border地区。

因此 CSS 背景属性被设计为覆盖直到元素边框的区域。它们不覆盖边缘区域。它们不会溢出。


第二部分:overflow

这是背景颜色被截断的另一个原因。

The overflow属性仅适用于内容。这与背景无关。

从规格来看:

11.1.1 溢出:overflow财产 https://www.w3.org/TR/CSS22/visufx.html#overflow

该属性指定块容器元素的内容是否 当它溢出元素的框时被剪裁。


由于存在这两个障碍,CSS 对于解决这个问题没有什么用处(除了可能的 hack)。使背景颜色填充动态大小容器的整个长度的唯一方法是使用脚本。

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

让背景颜色延伸到溢出区域 的相关文章

  • 如何使用XPath选择非空段落?

    我想要抓取的网页具有类似的结构 每个都有一个段落是一个问题 一个段落是一个答案 我想抓取每个问题和答案并将它们存储在两个项目中 问题是 在某些页面上 问题和答案分别是 xxx p 1 and xxx p 2 但在其他页面上 xxx p 1
  • 如何让CSS选择以字符串开头的ID(不是Javascript)?

    如果 HTML 中有这样的元素 id product42 id product43 如何匹配所有以 product 开头的 id 我已经看到了完全使用 javascript 执行此操作的答案 但是如何仅使用 CSS 执行此操作 id pro
  • 电子邮件链接在 Android 上不起作用

    我有 HTML 格式的点击电子邮件链接的代码 它在我的电脑上运行良好 但在移动设备上不起作用 我只有 Android 所以我不知道问题是否仅在 Android 上或所有移动设备上 当我按下链接时 浏览器显示 网页无法显示 邮寄至 电子邮件受
  • 将图像编码为base64有什么效果?

    如果我将图像 jpg 或 png 转换为 base64 那么它会更大 还是具有相同的大小 会大多少呢 是否建议在我的网站上使用 Base64 编码的图像 大约会大 37 非常粗略地说 Base64 编码的二进制数据的最终大小等于原始数据大小
  • 重新加载更新的 javascript> 代码而不完全重新加载 html 页面

    我正在开发一个单页 Web 应用程序 它具有许多不同的功能和形式 当开发一个深度 我的意思是主页上没有的 功能时 我会经历这个循环 开发代码 编辑类和函数 刷新整个页面 一路点击 直到到达我需要测试的部分 有时加起来大约一分钟 测试新代码
  • 如果一个设置多个html标签的id属性值相同,会发生什么?

    我最近看到一个html页面 我认为几个html标签的id是相同的 然后我意识到id是唯一的 但这提出了一个问题 如果页面实际上使用了多个标签 会发生什么 正如我听说每个 html 标签 如果有的话 的 id 属性必须是唯一的 现在我想知道如
  • 编辑类名中带有空格的元素的 css 样式

    我正在创建一个 tumblr 我必须编写一个外部 CSS 文件 但我在编辑 post 元素的 css 样式时遇到问题 这是它的结构 li class post quote other code li 问题是类名中有空格 我如何创建一个 CS
  • Gmail 无法在电子邮件上正确呈现字体

    我已经建立了一个 html 电子邮件并使用了 Google 字体 我已使用以下方法将字体包含在 head 标签中 if mso endif 并使用字体 即我这样做了
  • iPad - 无法在框架内滚动

    我无法滚动 iPad Safari 中框架内调用的 pdf 我已经尝试过两件事 2 指滚动 使用对象 嵌入代替框架 但这是行不通的 事实上我已经尝试了很多东西 溢出 高度等等 请帮我 先感谢您 根据这篇文章http support appl
  • CSS3变换:悬停时翻译,带有过渡[重复]

    这个问题在这里已经有答案了 这应该很简单 我的 HTML 中有一堆锚点 如下所示 a href Link 1 a a href Link 2 a a href Link 3 a a href Link 4 a a href Link 5 a
  • 如何覆盖 bootstrap 表 td 样式?

    我正在使用 Bootstrap 3 3我有一个 HTML 代码如下 div table class table table striped tr td 03 td td 04 td td 05 td td 06 td td 07 td td
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • 引导标签输入宽度

    我正在尝试使用引导程序标签输入 http timschlechter github io bootstrap tagsinput examples 以模态中包含的形式 像这样 div class form group div
  • 使 Material UI Grid 项目的子项拉伸以适合父容器的剩余高度

    1 现状 我有一个包含 4 个网格项的 Material UI 网格容器 每个 Grid 项中都有一个 Typography 组件 其中包含标题和包含一些内容的 Card 如下所示 2 期望的外观 我希望卡片填充网格项目的剩余高度并且不超过
  • 使用 CSS 覆盖透明 div 中的不透明文本

    我试图使透明 div 内的文本没有不透明度 也就是全黑 div style background 3cc p style background 000 This text should be all black p div 只用 CSS 就
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • 如何为 TBODY 应用垂直滚动条

    我的表中有 4 列和 5 行数据 我必须为 TBODY 应用垂直滚动条 TH 标题内容不应滚动 我对场景进行了编码 并且在我将滚动类应用于 TBODY 之前它工作正常 一旦我将滚动样式类应用于 TBODY 它就会破坏之前的对齐方式 任何人都
  • 在 Bootstrap 中使用 CakePHP 时如何修改包装器 div 错误类

    我在用着Bootstrap 3 0RC1 with CakePHP 2 3 6 尝试利用那些漂亮的课程 例如has error and has warning for 验证状态 http getbootstrap com css forms
  • 水平对齐输入字段

    我正在尝试获取一个输入字段 并且它与同一水平线上的关联提交按钮相关 但事实证明这是一个挑战 这是我的代码
  • 如何:带有 onclick 的 div 位于另一个带有 onclick 的 div 中

    只是一个简单的问题 我遇到了 div 与 onclick javascript 之间的问题 当我点击内部 div 时 它应该只触发它的 onclick javascript 但外部 div 的 javascript 也会被触发 用户如何点击

随机推荐

  • 64 位 Windows 的 cygwin 1.7.26 中的 rxvt-native 实用程序在哪里?

    我一直在 cygwin 上使用 rxvt native 程序 我安装了 64 位 cygwin 但在其中找不到 rxvt 包 我安装了相同版本的32位cygwin 看起来它仍然存在 有人知道为什么这个软件包不能用于 64 位 cygwin
  • 如果延迟超过 2147483648 毫秒,setTimeout 会立即触发

    问题 If the delay超过 2147483648 毫秒 24 8551 天 该函数将立即触发 Example setTimeout function console log hey 2147483648 this fires ear
  • Jquery,将标题转换为 Slug

    我有一个执行以下操作的 PHP 脚本 它接受一个字符串 例如 This is a Great Blog Post 1 并返回以下字符串 this is a great blog post 1 我不完全是 Jquery 专家 这就是我问这个问
  • Python-MySQL 中的错误处理

    我正在运行一个基于 python Flask 的小型 Web 服务 我想在其中执行一个小型 MySQL 查询 当我获得 SQL 查询的有效输入时 一切都按预期工作 并且我得到了正确的值 但是 如果该值未存储在数据库中 我会收到一个TypeE
  • 如何使用模板根据类型将元素添加到各种容器

    我有一个相当愚蠢的问题 但我希望你能帮助我 我有包含多个向量的类 并且这些向量具有不同的存储类型 class BaseClass std string Name class B public BaseClass class C public
  • 两栏布局,固定右栏

    我被一个看似简单的两列 CSS 布局所困扰 通常 这种布局很简单 但我正在构建一个响应式网站 需要各列以移动设备的正确顺序折叠 彼此重叠 在桌面上 我需要右列的大小固定 例如 200px 其余区域由左列占据 当然 我需要这些列来清除并将内容
  • Python 中用于日志记录替代功能的配置文件

    我有功能 def go logger logfilename formatter logging Formatter asctime s levelname s message s logging basicConfig filemode
  • 模拟麦克风输入

    我正在尝试编写一个小程序来读取 wav 文件并发送输出 就好像它来自我的麦克风一样 不幸的是我对声音 API 没有太多经验 背景 我基本上想要实现的是一个在我进行语音聊天时播放声音的程序 即 Teamspeak Ventrilo 为了让它现
  • Java 获取特定日期前一天

    我有一个字符串过期日期 但我需要在过期日期到来的前一天执行一些 SQL 语句 我得到了我的过期日期和截止日期 SimpleDateFormat dateFormat new SimpleDateFormat dd MM yyyy Strin
  • 如何使用 mongodump 转储匹配特定日期范围的记录?

    我正在尝试使用 mongodump 命令转储在特定日期创建的一堆记录 这些记录包含一个 ts 字段 它是 MongoDB Date 对象 mongodump 采用 q 参数 可用于运行查询来选择要包含在转储中的记录 不幸的是 q 参数需要在
  • Rails 3.2.8 引擎中 simple_form 的加载错误

    当在 Rails 3 2 8 引擎中加载 simple form 时 simple form 初始值设定项文件 simple form rb 会导致错误 config initializers simple form rb 2 in
  • 何时使用 NSEnumerationConcurrent

    我时不时地注意到 我使用块来迭代集合 而不会写入任何共享数据或导致任何副作用 我考虑添加 NSEnumerationConcurrent 选项 然后决定不使用它 因为我不太明白何时值得使用它 所以我有一个具体的问题和一个更一般的问题 第一个
  • 如何在 VB.NET 中完成 Visual Studio 代码片段?

    In C if you start a snippet you press Tab to cycle through the snippet elements and press Enter to complete and exit the
  • 在 Java 中访问包私有字段

    探究 Android API 源代码 有FileDescriptor与数据成员descriptor没有访问修饰符 int descriptor 然后就是上课了FileOutputStream构造一个新的 FileDescriptor 并分配
  • 使用 SQL Server 2016 时态表查询已删除记录的最佳方法是什么?

    我正在查看 SQL Server 2016 时态表 找不到任何有效的方法来查询现在已删除的所有历史记录 我不喜欢软删除或移动到 已删除项目表 因为我觉得临时表是多余的 这可以通过时态表以有效的方式实现吗 时态表旨在为您提供数据的时间点视图
  • Process.join() 和队列不适用于大量数据[重复]

    这个问题在这里已经有答案了 我正在尝试拆分 for 循环 即 N 1000000 for i in xrange N do something 使用 multiprocessing Process 并且它适用于较小的 N 值 当我使用更大的
  • 尝试使用 java EventHubClient API 将事件发送到 Azure 事件中心时出现“连接中止”错误

    我正在尝试编写一个java发布程序 以向事件中心发送一条消息 但是 当我尝试执行它时 我收到连接中止错误 我正在使用下面的链接 azure eventhubs 和0 9 0版本中指定的maven依赖项下面是我试图遵循的链接和主要方法 htt
  • SQLiteException:从数据库读取时无法识别的标记

    我已经在应用程序内创建了一个 SQLite 数据库 填充了它 现在我尝试从中读取数据 该应用程序不断崩溃 这是我收到的 logcat 12 30 05 53 18 008 E AndroidRuntime 6205 java lang Ru
  • Linux 上应用程序数据(非用户特定)的存储位置

    In my OSGi https en wikipedia org wiki OSGi基于 Java 应用程序 我正在开发一个捆绑包 为系统的其余部分提供对文件系统的访问权限 除了提供对用户主目录的访问之外 我还希望提供对非用户特定区域的访
  • 让背景颜色延伸到溢出区域

    如果总计内容高度父级的大小是 10 000px 但overflow auto元素是rendered高度为 700px 我如何强制aside子元素动态渲染为 10 000pxinstead默认 700px 当您开始滚动时 您可以看到白色背景小