为什么这个 css z-index 在我的 XUL 应用程序中不起作用?
我有这个 Xul 文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://greenfox/content/mycss.css" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<image class="Front" src="images/loading.gif"/>
<image class="Back" src="images/plasma.jpg"/>
</window>
使用这个 CSS (更新):
.Back {
position: absolute;
left: 0px;
top:0px;
z-index:0;
}
.Front {
position: absolute;
left: 0px;
top:0px;
z-index:1;
}
并且由于某种原因,图像垂直地一个在另一个之上,而不是在我的 CSS 指定的 z-index 中。知道如何修复它吗?
解决方法
暂时,我使用一个没有背景和边框的新窗口,并且“正在加载”位于中心。
I have this Xul file:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://greenfox/content/mycss.css" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<image class="Front" src="images/loading.gif"/>
<image class="Back" src="images/plasma.jpg"/>
</window>
with this CSS (updated):
.Back {
position: absolute;
left: 0px;
top:0px;
z-index:0;
}
.Front {
position: absolute;
left: 0px;
top:0px;
z-index:1;
}
and, for some reason, the images are vertically one above another, not in z-index as specified by my CSS. Any idea how to fix it?
workaround
For while, I'm using a new window with no background and no borders, and the "loading" in the center.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
编辑:明白了:D,没有丑陋的边距黑客
——下面的旧解决方案
——这似乎有效:
edit: got it :D without ugly margin hacks
--old solution below--
this seems to work:
这些元素仍然相对于彼此定位,您需要绝对定位
The elements are still positioned relatively to one another you need to position absoutely
通常,对于CSS绝对定位,元素的容器也必须有一个不设置为静态的位置;我认为 xul 没有什么不同,所以我建议将窗口元素设计为具有相对位置。
usually, for css absolute positioning, an element's container also has to have a position not set to static; i'd assume xul is no different, so i suggest styling the window element to have a relative position.
布局引擎的某些实现仅处理 z-index 的严格正值。
只需尝试将每个值增加 1。
另一个尝试应该是将窗口元素设置为position:relative(这是另一个 CSS 陷阱,因为一个元素应该相对于相对元素绝对定位。我知道这很令人困惑,但值得快速了解一下)尝试)。
编辑:
Some implementations of layout engines just deal with strict positive values for z-index.
Just try incrementing each value by 1.
Another try should be setting your window element to position:relative (this is another CSS gotcha, because one element should be absolutely positioned relatively to a relative element. I know it is confusing, but worth a quick try).
EDIT: