将背景应用于 和/或

2023-11-29

$("#toggle").click(function(){
    $("html").toggleClass("bg");
});
html.bg {
    background: blue;
}

body {
    background: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html class="bg">
<head>
</head>

<body>
    Test
    <br>
    <button id="toggle">Toggle HTML background</button>
</body>
</html>

我发现如果你应用 CSS 背景body,它占据了整个页面(无论实际的高度或宽度是多少)body is).

但是,如果您将 CSS 背景应用于两者html and body,背景为body 不占据整个页面.

这种差异是预期行为吗?

我将如何叠加两个全屏背景(例如,背景颜色和半透明图像?)


This is correct behavior.1 In standards mode, body, as well as html, doesn't immediately take up the entire height of the viewport, even though it appears so when you only apply a background to the latter. In fact, the html element will take on the background of body if you don't give it its own background, and html will pass this on to the canvas:

根元素的背景成为画布的背景,并且其背景绘制区域延伸到覆盖整个画布,尽管任何图像的大小和位置都是相对于根元素的,就好像它们是单独为该元素绘制的一样。 (换句话说,背景定位区域是根据根元素确定的。)如果根元素的“background-color”值为“透明”,则画布的背景颜色取决于 UA。根元素不会再次绘制该背景,即其背景的使用值是透明的。

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

不过,也就是说,您可以将任何背景图像叠加在单个元素的背景颜色上(或者html or body),无需依赖两个元素——只需使用background-color and background-image或将它们组合在background简写属性:

body {
    background: #ddd url(background.png) center top no-repeat;
}

如果你想合并两张背景图片,你需要依赖多个背景。主要有两天时间来做这件事:

  • 在 CSS2 中,这就是两个元素的样式派上用场的地方:只需将背景图像设置为html和另一张图片body您希望将其叠加在第一个上。确保背景图像打开body以全视口高度显示,您需要应用height and min-height分别还有:

    html {
        height: 100%;
        background: #ddd url(background1.png) repeat;
    }
    
    body {
        min-height: 100%;
        background: transparent url(background2.png) center top no-repeat;
    }
    

    顺便说一句,你必须指定的原因height and min-height to html and body分别是因为这两个元素都没有任何固有高度。两者都是height: auto默认情况下。它是具有 100% 高度的视口,所以height: 100%从视口获取,然后应用于body至少要允许内容滚动。

  • 在 CSS3 中,语法已得到扩展,因此您可以在单个属性中声明多个背景值,无需将背景应用于多个元素(或调整height/min-height):

    body {
        background: url(background2.png) center top no-repeat, 
                    #ddd url(background1.png) repeat;
    }
    

    唯一需要注意的是,在单个多层背景中,只有最底层可能有背景颜色。您可以在此示例中看到transparent上层缺少值。

    不用担心 - 即使您使用多层背景,上面指定的传播背景值的行为也完全相同。

不过,如果您需要支持较旧的浏览器,则需要使用 CSS2 方法,该方法一直支持到 IE7。

我的评论在这个另一个答案解释一下,并附上fiddle, how body实际上是从html默认情况下,即使它看起来像是被填充了,这又是由于这种看似奇怪的现象。


1 This may have its roots in setting the HTML background and bgcolor attributes of body causing the background attribute to apply to the entire viewport. More on that here.

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

将背景应用于 和/或 的相关文章

  • Jquery,当屏幕宽度为1050px时删除类

    这是我正在使用的JS代码 document ready function var nav menu2 window scroll function if this scrollTop gt 90 nav addClass f nav els
  • 当虚拟键盘出现时,三星 Android 上的 Html 输入失去焦点

    我在使用 html5 Web 应用程序的 Samsung Galaxy Tab A Android 7 0 上遇到输入元素失去焦点的问题 这似乎是android中的一个问题 就像在windows 10或iOS上一样 尽管弹出虚拟键盘时也会触
  • AngularJS动画卡片翻转

    我正在尝试使用新的 AngularJS 方式在页面转换之间制作动画 并希望合并卡片翻转 例如http jsfiddle net nicooprat GDdtS http jsfiddle net nicooprat GDdtS body b
  • 如何以列格式单独显示AJAX响应值?

    我使用 AJAX 从 PHP 中仅获得 3 个用户值 并且该值必须以列格式显示 我已经尝试过下面的代码 但它没有显示 我得到的输出就像所有名字都垂直显示 然后垂直显示姓氏后 AJAX document ready function sear
  • 如何使用角度在垫选择嵌套值中包含过滤器

    我正在使用带有嵌套下拉菜单的有角材料 下拉值以父级和子级为基础嵌套 我面临两个问题 自动建议不起作用 如果我输入父名称或其关联的子名称 则必须以展开模式过滤并显示特定的父视图 如果我展开第一个父视图并尝试展开第二个父视图 则第一个父视图应在
  • Jekyll 液体变量作为内联 CSS 值

    将液体变量作为内联样式传递通常会令人皱眉吗 这是我的标记的示例 div class span 8 12 h6 page role h6 h1 style color 000000 page title h1 div
  • Chrome - 儿童剪辑CSS3圆形边框?

    请参阅以下 JSFiddle http jsfiddle net zScKW http jsfiddle net zScKW 请注意 子 div 剪裁了其父 div 的边框 如果我删除边框 但保留圆角 该项目将按照我们的预期进行剪辑 Fir
  • 为什么 Internet Explorer 会使带有 Overflow:hidden 的 div 内的内容消失?

    最里面的 div 内的内容会显示在除 IE 之外的所有浏览器上 为什么 我注意到如果我删除overflow hidden from absolute container 然后里面的内容 item会出现 但出于显示原因 我需要保留 overf
  • 我如何在ajax应用程序中找到未使用的css?

    我一直在搜索 但找不到任何 ff 插件或 javascript 来查找 ajax 应用程序中未使用的 css 除尘选择器 http www sitepoint com dustmeselectors 可以进行网站抓取 但我正在寻找检查加载内
  • CSS 粘性位置在移动设备上无法正常工作

    我的 OpenCart 2 3 0 2 网站上有一个带有粘性购物车按钮的按钮 这个想法是只有一个页面可以订购 只有几个三明治 不需要类别和产品页面 所以我添加了一个位于页面右上角的购物车按钮 cart position fixed top
  • 在没有 Flash 的情况下用 HTML / js 录制音频?

    从麦克风录制音频并将 ajax 发回服务器 真的不知道如何在 Flash 中做到这一点 并希望它保持简单 目前还没有浏览器实现WHATWG 设备 API http www whatwg org specs web apps current
  • CSS水平导航间距

    我正在尝试用 css 创建一个水平导航栏 其中包含 5 个均匀间隔的链接 html 希望保持这样 div ul li a href one html One a li li a href two html Two a li li a hre
  • Firefox 浮动错误?如何让我的 float:right 在同一条线上?

    我有以下小提琴 http jsfiddle net q05n5v4c 2 http jsfiddle net q05n5v4c 2 在 Chrome 中 它渲染得很好 V 形标志位于右侧 然而 在 Firefox 中 Chevron 字形下
  • css中的减号或下划线有什么作用吗?

    这个问题和我问的很相似here https stackoverflow com questions 6110816 period in css does it do anything 我正在清理一些文件 我在这个 css 中遇到了这个 so
  • 使用 c out 标签时不会出现新行

    我将 n 附加到字符串中 当使用 s 标签文本区域时 已附加换行符并且数据逐行显示 但是当我使用 c out 标签时 数据显示在一行中 如何使用 c out 标签逐行显示 StringBuffer sb new StringBuffer f
  • 使用 CSS flexbox 重叠两个居中元素

    我试图将两个元素绝对居中于页面中间 一个元素在另一个元素后面 目的是让页面完全响应 中间有一个圆圈 后面有一个脉冲效果 这是一个小提琴 http jsfiddle net Fy8vD 2003 以下的 html body height 10
  • 右侧对齐不浮动

    我有一个聊天小部件 我正在向其中添加一些样式 但是 我很难使 用户 聊天气泡与屏幕右侧对齐 当我使用向右浮动和向左浮动 另一侧 时 div 不再正确定位 因为它们似乎只是转到相对 div 的右侧 我希望它也能够附加 div 这将导致溢出 y
  • ag-Grid 中的行格式

    我们需要有条件地将行文本设置为粗体 目前它仅适用于单个单元格 但我们需要在所有列单元格上应用文本粗体 应用格式设置后 isBold 列必须隐藏 删除 此列仅用于格式化 如何应用文本缩进 10px isBold 列包含真实值的第一列的 有可能
  • 样式选项标签[重复]

    这个问题在这里已经有答案了 我有一个包含选项的下拉菜单 我想部分地打破和粗体一些文本以及插入上下文中断 我尝试使用 CSS 和 HTML 标签 但无法得到它 有人可以建议一个解决方案吗 提前致谢 我知道这个问题有点老了 或者至少不是新的 但
  • 如何水平和垂直对齐内联块

    什么是最好 最干净的使用CSS对齐 dates div位于标题的右侧 垂直于中间 I tried float right 但这不允许vertical align 我想避免使用浮动 所以我使用inline block 并使用相对定位 有没有更

随机推荐

  • 如何在Python中制作可点击的图像

    我是 python 图像编程的初学者 如果我单击图像 我需要显示您单击的图像 1 像那样 到目前为止我尝试过的内容附在下面 始终显示 img 1 img 1 img 1 但不起作用 from tkinter import from tkin
  • 从mysql数据库获取带有unix时间戳的最近30分钟的记录

    我想从 mysql 数据库的表中获取数据 其中我的时间戳为 unix 格式 我在做了一些研究后使用了以下查询 但仍然无法获得结果 它显示空行 谁能帮忙 SELECT FROM bs items WHERE owner id 3 AND ti
  • 有关于 NHibernate 与 Fluent NHibernate 启动性能的数据吗?

    简而言之 什么方法效果更快 SessionFactory 预编译 XML 配置 或 流畅的 NHibernate 提供 以编程方式配置 我个人的经验是 配置对象的构建 无论是否使用 Fluent 这是不可避免的 通常会使设置 FluentC
  • 目标属性必须是依赖属性 - 为什么?

    我知道依赖属性在 WPF 中起着主要作用 但是 我不明白在绑定中目标属性必须是依赖属性这一限制背后的原因 为什么不能是任何财产 如果您有兴趣 可以打开 Reflector 并查看一些与框架中的依赖属性和绑定系统相关的代码 为了实现属性路径的
  • 将 9 补丁图像添加到 Android Studio

    我使用以下命令创建了一个九补丁图像简单的九补丁生成器 这将创建一个目录res folder 包含图像的每个像素密度版本的文件夹 In Eclipse with ADT人们可以简单地将这些文件夹拖放到res 您的项目的文件夹 这看起来很简单
  • 正在链接... LINK:致命错误 LNK1181:无法打开输入文件“libgsl.a”

    我正在使用 SIFT 算法代码Rob Hess它在 Windows 中使用 OpenCV 库 我使用 Visual Studio 2008 作为 IDE 当我在 VS 中运行具有 调试 作为解决方案配置的图像匹配程序时 没有问题 一切正常
  • 为什么初始 CSS 样式在 DOM element.style 字段上不可见?

    好吧 我完全期待着因为问一些愚蠢的事情 或者至少重复 而陷入困境 但在所附的片段中 为什么我必须使用window getComputedStyle访问 CSS 应用的样式 我的印象是 style字段至少会反映 CSS 最初应用的样式和 或此
  • 如何使用 python 检索弹性搜索中某个术语的频率?

    我必须找到该术语在所有包含该术语的匹配文档中出现的频率 例如 天空 例如 如果 doc1 有一个句子 天是蓝的 天是蓝的 doc2 有一句话 飞机在天上飞 那么术语 天空 的总频率应该是 3 我发现术语向量如下所述 https www el
  • java mp3 输入流到字节数组?

    在你说 谷歌它 之前 我尝试过 发现了一些有趣的文章 但没有任何效果 我需要将 mp3 文件从网站转换为字节流 稍后可以将其保存到本地文件中 这是我的代码 最重要的部分 Url url new Url someUrl URLConnecti
  • Excel图表动态范围选择

    我有一个客户对 Excel 工作表设置有一个简单但复杂的请求 但我不知道从哪里开始 我正在画一个空白 我们有一个数据范围 例子 Quarter Data 2010Q1 1 2010Q2 3 2010Q3 4 2010Q4 1 我在此基础上建
  • 如何从android中的线程中获取结果?

    我有一个主类 一个工作线程类 它们是分开的 在主线程中 我将输入传递给工作线程并要求它工作 完成后 我希望它将结果发送回主线程 我怎样才能做到这一点 public class MainActivity extends Activity Ha
  • 限制对特定邮箱的域范围委派

    我一直在开发服务器到服务器的谷歌日历集成 通过它连接 读取和写入用户的日历 这工作得很好 但是我有一个关于权限范围的问题 使用具有域范围委派的服务帐户 这意味着该帐户可以访问组织中从 CEO 到我的每个用户的日历 有没有办法从 Google
  • 定义 JavaScript 事件对象

    为什么我会收到这段代码的错误 function catchevent eventSrcID event srcElement event srcElement id undefined eventtype event type status
  • 反向 Ajax + JSP-Servlet

    我们正在尝试在我们的项目中创建一个反向ajax 我在网上查了一下 没有找到具体的东西 我无法成功运行任何提供的教程 我的目标是 当服务器有偶数推送时 可能是高 CPU 使用率 RAM 等 提供屏幕警报 如弹出窗口 HTTP 协议 毕竟幸运的
  • 适用于多个 IDP 的 Spring SAML 扩展

    我们计划在我们的应用程序中使用 spring saml 扩展作为 SP 但我们的应用程序的要求是我们需要与 1 个以上的 IDP 进行通信 任何人都可以向我提供 指导我使用多个 IDP 的示例吗 我还想知道 spring saml 扩展支持
  • 将 Karma-runner 与 AngularJS、Jasmine、CoffeeScript 结合使用

    我的应用程序除了jRuby Rails uses AngularJS CoffeScript 我想测试我的javascriptJasmine并运行它Karma aka Testacular 但我收到一条错误消息 指出我的Angular 模块
  • 如何在嵌套目录中生成sphinx停靠点?

    我想从嵌套文件夹结构中的脚本生成 sphinx autodoc 文档 programs general name another folder script1 py script2 py 由于某种原因 script1 py 和 script
  • CommonsMultipartFile 无法解析为类型

    将 spring 从旧版本升级到 Spring 6 0 4 后我注意到这个文件已经移动 从这里 Spring docs 4 3 x for CommonsMultipartFile 6 0 4 上的 web 没有公共资源不再就像 4 3 x
  • 将 d3 交互式矩阵散点图更新到 v4 时出现问题

    我试图通过将我感兴趣的各种 v3 脚本更新到 v4 来提高我使用 D3 js 的技能 但在尝试 移植 Mike Bostok 在此发布的交互式散点图矩阵时遇到了困难 https bl ocks org mbostock 4063663 虽然
  • 将背景应用于 和/或

    toggle click function html toggleClass bg html bg background blue body background yellow Test br