文本修饰:外观和计算值之间的明显差异

2024-04-04

我在处理与以下内容相关的代码时注意到了这一点(奇怪?)a:div 周围的链接 - div 内的样式 https://stackoverflow.com/questions/13595357/alink-around-div-styling-inside-div

给定这个 HTML:

<a id="foo" href="foobar">
  <div id="bar">
    <h2 id="baz">Foo</h2>
  </div>
</a>

这个CSS(添加背景颜色以显示结构):

a {
  display: block;
  padding: 20px;
  background-color: rgb(240,240,240);
}

#bar {
  width: 200px;
  height: 100px;
  background-color: rgb(220,220,220);
}

#baz {
  padding: 20px;
  text-decoration: none;
}

Fiddle https://jsfiddle.net/xD6f9/


Chrome 将匹配的 CSS 规则显示为包含text-decoration: none;但文本确实带有下划线:

Chrome Console
(source: pangram.net http://pangram.net/sandbox/td-chrome-console.png)


同样,使用 Firebug,Firefox 返回null为了textDecoration计算样式:

Firebug
(source: pangram.net http://pangram.net/sandbox/td-firebug.png)

MDN 是这么说的text-decoration适用于所有元素 https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration.

我意识到有一个简单的解决方法,只需应用text-decoration财产给a链接,但这不是我所期望的行为。谁能解释这个(明显的)差异?

Edit:我相信答案就在这里:线条装饰:下划线、上划线和删除线 https://www.w3.org/TR/css-text-decor-3/#line-decoration

当指定或传播到建立的块容器时 内联格式化上下文,装饰被传播到 匿名内联框,包装所有流入的内联级子级 块容器的。

但我仍然不完全明白发生了什么事。


您可能知道,Chrome 和 Firefox 默认情况下会给超链接添加下划线。

这里发生的事情是text-decoration gets computed to none on #baz(如您的 CSS 规则中所指定),使用价值最终成为underline作为从其祖先传播浏览器默认样式的结果,a元素。这个使用值replaces将页面渲染到画布上时的计算值,但就 DOM 而言,计算值仍然存在none,仅基于级联分辨率。

因此,这里的差异在于计算值和使用值之间的差异。定义可以在中找到第 6.1 节 http://www.w3.org/TR/CSS21/cascade.html#value-stages.

这种行为的传播text-decoration值放入后代框中,发生这种情况独立于级联,概述了here http://www.w3.org/TR/CSS21/text.html#lining-striking-props:

当在内联元素上指定或传播到内联元素时,它会影响该元素生成的所有框,并进一步传播到分割内联的任何流内块级框(请参阅第 9.2.1.1 节 http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level).

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

文本修饰:外观和计算值之间的明显差异 的相关文章

  • 如何简化这个 LESS CSS Box-shadow mixin? (带有“方向”的多个阴影)

    如何减少这段代码 可能使用循环 以拥有一个接受方向和数字的 函数 dir 想要的 方向 number 我需要多少次影子 这里是10次 color 阴影的颜色 Example 可以工作 但不是很容易使用 perspective box dir
  • Quill 公开可用的 CSS

    我最初的目的是从 PrimeFaces TextEditor 组件输出的 HTML 生成 PDF 文件 而该组件又基于 免费开源 WYSIWYG 编辑器 Quill 为此 我需要获取 TextEditor 组件生成的 HTML 将其包含在
  • chrome 中选择选项元素的额外填充

    我有一个选择元素 用户可以在其中选择分类和描述 仅在 Chrome 浏览器中 我有一个额外的填充 无法使用 padding 0 或其他 css 标签删除它 Chrome 的屏幕 https i stack imgur com m3iIb p
  • 将图像编码为base64有什么效果?

    如果我将图像 jpg 或 png 转换为 base64 那么它会更大 还是具有相同的大小 会大多少呢 是否建议在我的网站上使用 Base64 编码的图像 大约会大 37 非常粗略地说 Base64 编码的二进制数据的最终大小等于原始数据大小
  • 重新创建 CSS3 过渡三次贝塞尔曲线

    在 CSS3 过渡中 您可以将计时函数指定为 cubic bezier 0 25 0 3 0 8 1 0 在该字符串中 您仅指定曲线上点 P1 和 P2 的 XY 因为 P0 和 P3 始终分别为 0 0 0 0 和 1 0 1 0 根据苹
  • Bootstrap Affix Nav 导致下面的 Div 向上跳转

    我使用 Bootstrap 的 Affix 函数创建了一个 JSFiddle 以便在向下滚动并且标题移出视图时使导航保持在屏幕顶部 我遇到的问题是 当使用纯 HTML 时 导航下方的文本会过早地跳起来并隐藏在导航后面 查看有问题的代码her
  • TDD/测试 CSS 和 HTML? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法测试 CSS 和 HTML 例如 有时某些通知会受到某些 CSS 更改的影响 我不想每次进行更改时都手动测试所有通知 Tha
  • 如何在bootstrap中默认隐藏侧边栏?

    我在这里有一个很好的参考 作为 Bootstrap 在设计 Web 表单应用程序时的侧边栏 http startbootstrap com template overviews simple sidebar http startbootst
  • 如何将大于整个页面 100% 的元素居中对齐?

    我有一个宽度为 100 的 div 并且隐藏了一个宽度为 3000px 的 div 我希望3000px的div左右均匀地被切断 我会使用背景位置 中心 然而 事情比这更复杂 3000px div 包含 30 100px div 我尝试过在
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • 引导标签输入宽度

    我正在尝试使用引导程序标签输入 http timschlechter github io bootstrap tagsinput examples 以模态中包含的形式 像这样 div class form group div
  • 水平对齐输入字段

    我正在尝试获取一个输入字段 并且它与同一水平线上的关联提交按钮相关 但事实证明这是一个挑战 这是我的代码
  • CSS:水平滚动时背景不存在

    好的 我的背景设置如下 HTML div div CONTENT HERE div div CSS container background url image gif content width 800px margin auto 因此
  • 使用 CSS 自定义字体?

    我见过一些在其网站上使用自定义字体的新网站 除了常规的 Arial Tahoma 等 他们支持大量的浏览器 如何做到这一点 同时 如果可能的话 还会阻止人们免费下载该字体 一般来说 您可以使用自定义字体 font face在你的 CSS 中
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • 如何并排放置两个

    我有两个 div 我想要并排放置的元素 如下所示 navigation content 我想要导航 div 根据需要尽可能大 但不能更大 收缩以适应行为 内容 div 然后应该填充剩余的空间 如何在不指定百分比 例如 20 80 的情况下使
  • 如何更改 Bootstrap 3 div 列顺序

    正在做我的第一个响应式设计 在 Bootstrap 3 中可能会出现类似的情况 在 lg 上更改此设置 a b c sm 上的这个 a c b 您可以使用两个 div 一个用于第一类型的布置 另一个用于第二类型的布置 第一个仅在 lg 中显
  • 如何将送货地址复制到帐单地址

    我想知道是否可以将送货地址复制到帐单地址 当用户单击与送货地址相同的复选框时 送货地址值将被复制到账单输入字段 我完成了大部分部分 但我不确定如何将选择菜单 状态 值复制到帐单地址 我真的很感谢任何帮助 My code document r
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐

  • 如何在 OpenAPI 3.0 中全局设置 Accept header?

    我通过 SwaggerHub 设置了新的 OpenAPI 是否有一个选项可以强制执行某些操作Accept全局标题 我已经设置了Content Type关于回应 openapi 3 0 0 paths test path get respon
  • AirPlay 的音频输出路由

    我已经查看过 但找不到访问音频输出路由的方法 因此我可以检测音频是否通过 AirPlay 输出 这是我在 iOS 5 0 文档中找到的 kAudioSessionOutputRoute AirPlay 讨论 这些字符串用作与 kAudioS
  • 从 varchar 字段中仅选择单词的首字母

    我在一次采访中被问到 一个来自oracle sql的问题 这似乎是一个简单的问题 但我不知道如何回答 有人可以帮忙吗 如果某列中有 纽约是一座美丽的城市 这样的字符串 select column name from table name 将
  • 绝对定位的弹性盒不会扩展以适应内容[重复]

    这个问题在这里已经有答案了 正如您从下面的代码片段中看到的 查看小提琴 http jsfiddle net tekm28wy 绝对定位的柱状弹性盒不会扩展以适合其子级 例如 在 Chrome 中 它的宽度仅与最宽的子元素一样宽 高度与最短的
  • 为什么使用公共变量?

    变量 方法和类可以获得不同的安全级别 根据我的 C 经验 有 public内部的受保护的受保护的内部私人的 现在 我了解了将方法和类设为私有 内部或受保护的用途 但是变量呢 即使我将变量设置为私有 我也可以使用属性从不同的类中调用它 我一直
  • 计算变化率

    我有一个名为 yield 的数据集 yield lt data frame fruits c apples apples apples oranges oranges oranges pears pears pears year rep 2
  • xslt需要选择单引号

    我需要这样做
  • YouTube API 配额限制和可扩展的应用程序

    我目前正在开发一个需要通过 youtube 上传视频的应用程序 我计划通过 youtube API 在应用程序中分享视频 根据文档 在 YouTube 上分享视频需要 大约 16000 个单位 每个应用程序都有 500 万个单位的补充配额
  • C++ VS2013 调试器断点:未命中

    我有一个相对简单的 C 控制台项目 它执行一些计算并写入输出文件 我试图确定为什么输出文件没有正确的输出 相反 我一直在与调试器作斗争 由于某种原因我无法添加断点在某个函数的某一行之后 无法到达第 1106 行之后到第 1214 行 函数末
  • 获取模拟用户名

    我有一个类需要知道当前有效的用户名 Environment UserName or WindowsIdentity GetCurrent Name是为了那个 但是当启用模拟时 它们会返回LocalUser名称不是ImpersonatedUs
  • 如何使用 SQL 查询删除 PostgreSQL 中的所有模式?

    我需要删除数据库中的所有架构 除了public information schema以及那些LIKE pg 这是我发现的 这个变体似乎不起作用 CREATE OR REPLACE FUNCTION drop all RETURNS VOID
  • Snow Leopard 上的 PyObjc 和 Cocoa

    我即将开始我的 A 级计算项目 高中级别 该项目有望成为 Mac 操作系统的销售点应用程序 不幸的是 目前 Objective C 有点超出我的能力范围 如果我在项目中陷入困境 我没有人可以提供帮助 所以我可能会不及格这门课程 也无法进入大
  • 如何测试载波文件是否更改?

    我正在尝试测试代码中的图像是否随载波更改 但我找不到方法来执行此操作 即使文件无效 对象似乎也被标记为已更改 因此它并未真正更改 查看以下输出 rdb 1 job translated xliff
  • Java:计算两点之间的角度(以度为单位)

    我需要计算我自己的 Point 类的两点之间的角度 以度为单位 点 a 应为中心点 Method public float getAngle Point target return float Math toDegrees Math ata
  • Django REST Framework 自定义字段验证

    我正在尝试为模型创建自定义验证 以检查其start date在其之前end date事实证明这几乎是不可能的 我尝试过的东西 内置 Django 验证器 没有对此进行检查 我自己写的 就像这样 def validate date self
  • 更新 flutter 和 Xcode 后,Xcode 14.3 中缺少文件“libarclite_iphoneos.a”

    我有 flutter 项目 我正在尝试运行 iOS 版本 但在将 flutter 和 Xcode 更新到最新版本后出现错误 我使用 firebase core 插件 error Could not build the precompiled
  • 爱国者导弹浮动指向误差

    从计算机系统 程序员的角度http csapp cs cmu edu http csapp cs cmu edu 练习题2 51 我们在问题 2 46 中看到 爱国者导弹软件近似为 0 1 因为 x 0 000110011001100110
  • Azure 相同的 FTP URL 适用于共享相同应用程序服务计划的所有 Azure 网站

    我为单一应用程序服务计划创建了几个 Web 应用程序 对于所有这些应用程序 我看到一个 FTP URL 问题是 当我转到 URL 时 我可以看到一个 Site wwwroot 文件夹 其中仅显示一个应用程序 不是可以访问其他Web应用程序的
  • 在 Python 或 MATLAB 中从等值线图的像素中提取数据

    我有一个这样的等高线图 Now 如果我没有生成等值线图的数据 而我拥有的只是图像 如何从图像中提取每个像素的值并将其存储在数组中 MATLAB Python 中的任何建议或示例都会有帮助 如果您知道像素值 请使用find 您可以找到您想要的
  • 文本修饰:外观和计算值之间的明显差异

    我在处理与以下内容相关的代码时注意到了这一点 奇怪 a div 周围的链接 div 内的样式 https stackoverflow com questions 13595357 alink around div styling insid