为什么同一层上的文本会重叠 - 即使它具有不透明的背景?

2023-11-29

我知道我可以通过使用相对/绝对定位创建新的堆叠上下文来将元素堆叠在单独的层中(Demo) 或不透明度 (Demo)

然而,我的印象是,默认情况下,html 中更靠下的元素将绘制在前面的元素之上。

显然,元素的背景是如此,但我只是注意到文本的工作方式不同。

因此,使用简单的标记,例如:

<div class="div1">text1</div>
<div class="div2">text2</div>

第二个 div 的背景将位于第一个 div 的上方,但文本重叠。

.div1,
.div2 {
  width: 200px;
  height: 150px;
  overflow: hidden;
  color: white;
}
.div1 {
  background: maroon;
}
.div2 {
  background: green;
  margin: -100px 0 0 100px;
}
<div class="div1"></div>
<div class="div2"></div>
<hr />
<div class="div1">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has
  survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing
  software like Aldus PageMaker including versions of Lorem Ipsum.</div>
<div class="div2">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has
  survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing
  software like Aldus PageMaker including versions of Lorem Ipsum.</div>

Demo

enter image description here

我必须创建一个新的堆叠上下文以防止文本在此处重叠吗?


为什么同一层上的文本会重叠 - 即使它具有不透明的背景?

The spec说(强调我的):

在每个堆叠上下文中,以下图层按从后到前的顺序绘制:

  1. 形成堆叠上下文的元素的背景和边框。
  2. 具有负堆栈级别的子堆栈上下文(首先是最负的)。
  3. 流入、非内联级别、非定位后代。
  4. 非定位浮动。
  5. 流入、内联级、非定位后代,包括内联表和内联块。
  6. 堆栈级别为 0 的子堆栈上下文和堆栈级别为 0 的定位后代。
  7. 具有正堆栈级别的子堆栈上下文(最不积极的优先)。

背景和文本按照绘制顺序分开考虑:背景用#3 表示,文本用#5 表示。第二个元素稍后出现在源中,因此它被绘制在第一个元素上,但文本仍然需要绘制在背景上,因为这两个元素参与相同的堆叠上下文。

我必须创建一个新的堆叠上下文以防止文本在此处重叠吗?

是的,处理这个问题的最佳方法是定位元素或让它们建立自己的堆叠上下文。堆叠上下文始终是独立的,因此让每个元素建立自己的堆叠上下文将始终确保两个元素的背景和文本不会相互重叠。

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

为什么同一层上的文本会重叠 - 即使它具有不透明的背景? 的相关文章

随机推荐

  • 以编程方式设置区域设置

    我的应用程序支持 3 种 很快将支持 4 种 语言 由于几个区域设置非常相似 我想为用户提供在我的应用程序中更改区域设置的选项 例如意大利人可能更喜欢西班牙语而不是英语 有没有办法让用户在应用程序可用的区域设置中进行选择 然后更改使用的区域
  • pyautocad 给出不可谷歌的错误

    OSError WinError 2147221005 无效的类字符串 完整回溯 During handling of the above exception another exception occurred Traceback mos
  • mypy:如何在泛型类中声明返回 self 的方法的返回类型?

    这个答案似乎不适用于泛型 在检查以下代码时 Mypy 抱怨 错误 缺少泛型类型 A 的类型参数 我尝试过使用 A T 对于 TypeVar 但 mypy 说 错误 类型变量 T 未绑定 我也尝试过使用AnyA T 作为返回类型get但这会产
  • 查找列表的平均值

    如何在 Python 中找到列表的平均值 1 2 3 4 2 5 对于 Python 3 8 请使用statistics fmean用于浮点数的数值稳定性 快速地 对于 Python 3 4 请使用statistics mean用于浮点数的
  • 如何将替代文本添加到背景图像?使背景图像易于访问

    我有一个网站 它使用以下方式将许多图像显示为背景图像background size cover调整它们的大小以完全填充元素 同时裁剪掉图像中不适合的任何部分 问题是这些图像并不纯粹是装饰性的 它们是页面信息内容的关键部分 这意味着他们需要a
  • Android 编程和框架/IDE 使用?

    我对 Android 编程很陌生 我主要是一个 NET 人员 我在 Windows Phone 上做过几个项目 我对 MVVM 模式 C 等感到非常满意 然而 我想进入Android开发 因为它是一个重要的平台 我想知道什么是最好的免费方法
  • 使用 r 进行微分

    我是使用 R 或任何类型的编程的新手 我正在尝试区分 3xcos xy 和 x 我尝试了四种不同的方法 想知道哪一种是最好 正确的 D expression 3 x cos xy x D expression 3 x cos xy x D
  • 为什么 put() 不打印一行?

    这是一段代码 def add a b a b end print Tell number 1 number1 gets to f print and number 2 number2 gets to f puts number1 numbe
  • 日期的 JSON 序列化策略

    我遇到的问题是我有一些消费者是Java 一些消费者是浏览器 我的目标浏览器是 IE7 json3 仅适用于 IE7 和 Chrome 对于浏览器 我希望将日期反序列化为DateJavaScript 对象 使用JSON parse 方法 对于
  • 浏览器 JavaScript 中的 new Date().getTime() 是否总是产生 UTC?

    我可以依赖 Date getTime 始终给出 UTC 毫秒数 还是取决于用户的浏览器设置 位置 系统时区 Date getTime 始终返回自纪元以来所有时区同时经历的毫秒数 该格式的日期没有时区 仅在显示期间使用 例如 对于var da
  • 如何在一列中搜索具有多个参数的LINQ?

    例如有这张表 Name BodyType John 1 Ted 2 Daniel 3 George 4 在我的应用程序中 我选中 1 2 和 3 复选框 我应该找到 3 行 约翰 泰德 丹尼尔 而不是乔治 我如何在 LINQ 中获取此查询
  • 按单位和百分比排列的堆积条形图

    Summary 我想显示一个条形图 其维度为天 堆叠类别为另一个 即 x 轴 天且堆栈 类别 1 但是 我不是显示每个组 堆栈的简单数量总和 而是显示想要显示一天的百分比 JSFiddle https jsfiddle net wostoj
  • python3 中抽象属性的强制执行

    我有这个抽象类 class Kuku ABC def init self self a 4 property abstractmethod def kaka self pass kaka是一个抽象属性 所以我希望 python 强制它成为继
  • 从一行中选择前 n 个元素并取其平均值

    我有一个代表资产回报的数据 我想从每行中选择前 N 个资产并计算所选资产的平均回报率 详细来说 我想创建一个函数 它可以从一行中选择不同的元素 并对这些元素进行平均 就像从第一行开始 我想根据排名选择前 3 个元素并计算它们的平均值 从第二
  • 如何使用 Font Awesome 的数据属性?

    我想转换一个rel内容到 Font Awesome CSS 图标中 这样我就不必为一个简单的菜单编写 20 行 也许一些代码会让它更容易理解 我尝试这样做 a before content attr rel font family Font
  • kendo UI网格弹出编辑器模板验证未选取模型验证规则

    当您在未使用模板的网格中单击 编辑 时 您为 schema Model 定义的验证规则将得到正确应用 但如果您使用自定义模板 则不会应用 schema Model 验证规则 我怀疑答案是因为我使用自定义弹出编辑模板以便我可以有一个下拉列表
  • 交换链表的相邻元素

    下面是我的代码 用于递归交换链表的相邻元素 交换后我失去了指向每个第二个元素的指针 输入是 1 gt 2 gt 3 gt 4 gt 5 gt 6 gt 7 我期望输出 2 gt 1 gt 4 gt 3 gt 6 gt 5 gt 7 但我的输
  • 如何在 Flutter 中保持每 5 秒更换一张图像?

    状态变量 var moviePhotos http www kiwithebeauty com wp content uploads 2017 11 BLACK PANTHER COLLAGE KIWI THE BEAUTY MOVIE M
  • 导入 google play 服务后 Cordova 构建问题

    在admob SDK新更新后 现在我们需要将google play服务项目导入到我们的项目中 以在我们的应用程序中获利并展示广告 我正在使用 Apache Cordova Phonegap 创建一个应用程序 并用它创建了 android 项
  • 为什么同一层上的文本会重叠 - 即使它具有不透明的背景?

    我知道我可以通过使用相对 绝对定位创建新的堆叠上下文来将元素堆叠在单独的层中 Demo 或不透明度 Demo 然而 我的印象是 默认情况下 html 中更靠下的元素将绘制在前面的元素之上 显然 元素的背景是如此 但我只是注意到文本的工作方式