- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在玩与 a:link 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;
}
Chrome 将匹配的 CSS 规则显示为包含 text-decoration: none;
但文本确实带有下划线:
(来源:pangram.net)
同样,使用 Firebug,Firefox 为 textDecoration
计算样式返回 null
:
(来源:pangram.net)
MDN says that text-decoration
applies to all elements .
我意识到有一个简单的解决方法,就是将 text-decoration
属性应用到 a
链接,但这不是我所期望的行为。谁能解释这种(明显的)差异?
编辑:我相信答案就在这里:Line Decoration: Underline, Overline, and Strike-Through
When specified on or propagated to a block container that establishes an inline formatting context, the decorations are propagated to an anonymous inline box that wraps all the in-flow inline-level children of the block container.
但我还是不完全明白这是怎么回事。
最佳答案
默认情况下,Chrome 和 Firefox 会在超链接下划线,您可能已经知道。
这里发生的事情是,当 text-decoration
在 #baz
上被computed 为 none
(如指定在您的 CSS 规则中),使用的值 最终成为 下划线
作为从其祖先 a
元素传播浏览器默认样式的结果.在将页面呈现到 Canvas 上时,此使用值替换计算值,但就 DOM 而言,计算值仍然是 none
,仅基于级联解析。
因此,这里的差异在于计算值和使用值之间的差异。这些定义可以在 section 6.1 中找到.
这种将 text-decoration
值传播到后代框的行为独立于级联发生,概述了 here :
When specified on or propagated to an inline element, it affects all the boxes generated by that element, and is further propagated to any in-flow block-level boxes that split the inline (see section 9.2.1.1).
关于css - 文字装饰 : apparent discrepancy between appearance and computed values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13597673/
我有一个核心数据实体类,它是 NSManagedObject 的子类。 我想用最后一个修改器更新实体的属性。时间戳,所以我正在实现它的 willSave 方法。 我发现调用该方法时,isUpdated
Visual Studio 2010 具有许多扩展(默认激活)/与 C++ 标准的差异。 这种差异可能会令人惊讶,并引发与其他行为不同的行为。 VS 以在模板代码验证方面极其宽松而闻名,VS 接受和编
我们遇到了一个非常奇怪的问题,即在调用 GETUTCDATE() 时,第二条语句中的返回值比第一条语句中的返回值稍微早一些。我们的场景如下: 我们插入到一个表中以跟踪用户的当前状态,该表有一个触发器,
我们在 Visual Studio 2005 和 TFS 中经常遇到此错误。 任何人都可以帮助我们查明此消息的原因吗? 完整的信息是: There appears to be a discrepanc
我正在使用 this 配置 ECS 集群AWS 提供的模板。 我还想从 s3 存储桶添加文件,但在添加以下内容时 files: "/home/ec2-user/.ssh/authorized
我在玩与 a:link around div - styling inside div 相关的代码时注意到了这一点(奇怪?) 给定这个 HTML: Foo 还有这个 CSS(添
文档和示例代码中存在一些与 ObRegsterCallbacks 相关的差异,相互矛盾。我希望 Microsoft 的某个人能阅读此板并提供直接的答案。 首先,这里是一些背景: Vista SP1 第
我有一个相当典型的生产者-消费者场景,其中我有 1 个生产者线程执行查询并将结果放入 BlockingQueue大约 7-8 位消费者从 BlockingQueue 中挑选这些元素并对它们进行相当持久
我正在 Codechef 上解决这个问题。但我提交的代码得到了错误的答案。问题链接::http://www.codechef.com/problems/VOTERS/ 问题简述::有3位官员负责收集该
注意:我看到了"There appears to be a discrepancy between the solution's source control ....",但这并不适用,因为我希望在不
您好,我正在为我自己的数据集训练 VGG16 网络。下面给出了我使用的代码。 from keras.models import Sequential from scipy.misc import im
I am working on a project with a friend where we are both using the prcomp function in R to perfo
I am working on a project with a friend where we are both using the prcomp function in R to perfo
Android 上的 Room 有一种机制,您可以通过该机制将数据库模式导出为 JSON,然后根据单元测试套件中导出的模式验证数据库迁移。我在具有多个主键的表上遇到了问题,其中主键位置在迁移运行后都是
我一直在使用各种 _CRTMem* 函数来尝试定位代码中的内存泄漏。该应用程序是一个非托管 C++ 应用程序。我注意到的一些奇怪的事情: 任务管理器报告的内存使用增加(我使用其“提交大小”指标)与使用
在编写 IOUContract Java 代码并将 V2.0 与主文档进行比较时,我注意到文档的主副本不包含以下导入语句: import net.corda.core.contracts.Contra
Android Studio 更新到版本 2.3.1 后,Android Studio 显示一条警报,建议将 Gradle 从 2.3.1 升级到 3.3。我单击"is",它启动了同步过程。 但令人惊
我有两个 git 分支 b' 和 b" 具有完全相同的 SHA-1 和因此内容。我提交 b ' 并在提交时,我使用 -x 应用 cherry-pick 而不是 merge 或 rebase单个提交到我
我是一名优秀的程序员,十分优秀!