为什么很多 JavaScript 库的 z-index 都是 1051?

Why do a lot of JavaScript libraries have a z-index of 1051?

为什么大多数 Javascript 库甚至框架都将其某些元素的 z-index 设置为 1051?为什么是 1051?

如果我将 z-index 1052 设置为我需要覆盖第一个元素的某个元素,我错了吗?

Am I wrong if I set z-index 1052 to some element I need to overlay the first one?

这个问题不能用是或否来回答。这取决于堆叠上下文,您的元素是其中的一部分。 属性 z-index 在它自己的 Stacking context 中工作得很好,但是如果有两个元素在不同的 Contexts 中,那么将 z-index 设置为 0、100 或 9999 都没有关系。有多个场景,其中创建了一个新的堆叠上下文,例如,如果一个元素有 position: absoluterelative。同时设置 opacity 会创建一个全新的堆叠上下文。要了解有关堆叠上下文的更多信息,请阅读此 Documentation Page

不幸的是,我不知道为什么它在你提到的库中设置为 1051,但至少我可以告诉你,为什么 z-index; 1052 可能不起作用。

编辑: 我用谷歌搜索了一下,因为我发现这个问题至少很有趣,即使它不符合 SO 规则。似乎 Bootstrap 模态框的 z-index 为 1050,因此可能必须覆盖模态本身的每个元素都必须具有更高的 z-index。这只会引出一个问题,为什么模态框的 z-index 为 1050。

Here 是 bootstrap 的 z-index 规范的 link。如您所见,它们从 1000 开始,并且每个元素的 z-index 增加 10,这必须与前一个元素重叠,所以 我猜 它只是一种 Bootstrap 代码约定,它在其他库中具有级联效应。或者 Bootstrap 这样做是因为它自己使用了一个库。现在我们有一种 "Hen egg question".

这是为了确保这些 "some elements" 覆盖周围的内容。如果您自己使用 z-index(0 到 xxx 位数),它从 1000+ 开始给您 space。