Rég*_* B. 3 html css firefox google-chrome
我观察到一些与长 CSS 规则相关的非常奇怪的行为。
我的 HTML 如下所示:
<section id="mysection" class="modal">...</section>
Run Code Online (Sandbox Code Playgroud)
我的(sass 编译的)CSS 包含以下规则:
.modal {
display: none;
}
somelement, someotherelement, ... #mysection subelement,... #mysection someothersubelement, ... {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
第二个 CSS 规则是 84000+ 个字符长。请注意,它不应影响#mysection
元素,而只影响其子元素。
想要的结果是隐藏#mysection
元素。这在 Firefox 37.0.2 中正确实现。在 Chrome 42.0.2311.135 中,元素是可见的——这是不正确的。开发人员工具表明该#mysection
元素受这两个规则的影响,但第二个规则优先。但是,我似乎无法找到影响部分显示属性的 CSS 行的特定部分。
每当我更改其 ID 时,该部分就会隐藏在 Chrome 中。
我还可以通过将 CSS 行手动拆分为具有相同display: block
指令的约 40k 个字符的两个部分,从而在 Chrome 中获得正确的行为。一个假设是 Chrome CSS 解析器会按如下方式截断长行:
... #mysection subelement, ...
^
|
truncate here
Run Code Online (Sandbox Code Playgroud)
因此,该#mysection
元素将受到display: block
指令的影响。
我说的有道理吗?我觉得我在这里失去了理智。
归档时间: |
|
查看次数: |
1000 次 |
最近记录: |