为什么 Google 跟踪代码管理器将 display:none 和 visibility:hidden 都放在 iframe 上?

Why Google Tag Manager puts both display:none AND visibility:hidden on iframe?

如果您查看 Google 跟踪代码管理器嵌入代码的 <noscript> 部分,您会注意到类似以下内容:

<noscript><iframe style="display:none;visibility:hidden" src="//www.googletagmanager.com/..." height="0" width="0"></iframe></noscript>

我能理解为什么 style="display:none" 很重要(它会隐藏元素,使其在布局中占用零 space 但仍然获取内容)但是,为什么要添加"visibility:hidden" 部分?在我看来它没有增加额外的价值,所以我假设一定有一些边缘情况或遗留或移动浏览器没有它就无法正常运行。

有人知道吗?

可能是为了确保屏幕阅读器永远不会告诉任何人。看起来有些人发现这是有问题的,否则在这里:http://juicystudio.com/article/screen-readers-display-none.php#comment3

我还没有测试过,所以我不能确认任何一个,但是在布局方面它不应该有任何区别,因为 display:none 指示从布局中一起删除元素,所以使其不可见不会改变任何东西。