html - <span> 包含 3 个重叠图像,宽度是必要宽度的 3 倍

标签 html css

我有一个元素,包含三个重叠的图像。检查 Chrome 中的元素显示:

<span id=​"span1">​
   <img id=​"img1" src=​"images/​progressbar.gif" width=​"120" style=​"position:​ relative;​ z-index:​ 3;​">​
   <img id=​"img2" src=​"images/​progressbar.gif" style=​"width:​ 120px;​ height:​ 12px;​​ position:​ relative;​ left:​ -120px;​ z-index:​ 2;​">​
   <img id=​"img3" src=​"images/​progressbar.gif" style=​"width:​ 120px;​ height:​ 12px;​ position:​ relative;​ left:​ -240px;​ z-index:​ 1;​">​
</span>​

重要的一点是,后两张图片被赋予了相对位置,将它们向左移动,使它们与第一张完美重叠。但是跨度本身仍然是 360 像素宽(每个图像 3 x 120 像素)。那么,如何在保持跨度宽度紧紧围绕图像的同时实现这种效果呢?

谢谢!

最佳答案

这里发生的是浏览器的布局引擎执行初始布局(在考虑您的相对定位之前),计算 span的宽度(这是您的图像宽度的 3 倍),然后将图像移动到您指定的位置。

显而易见的解决方案是同时执行 <span id="span1" style="width:120px;"> .我认为这在您的情况下是可以接受的,因为 120px已经需要指定部分(及其倍数)来实现布局。

另一个解决方案是给出 position: absolute除了第一个图像之外的所有图像(您还需要将 position: relative<span> )。这将从布局中删除它们并允许您的 span紧贴所有剩余内容(即只有一张图片)。在这种情况下,虽然我不确定 z-index您的图像的属性(具有不同的 position )会相互作用。可能就好了。 :-)

编辑:通过使用最后一个解决方案(并假设没有 z-index 问题),您可以在不指定 120px 的情况下实现所需的布局。任何地方。这可能很重要,所以请牢记。

关于html - <span> 包含 3 个重叠图像,宽度是必要宽度的 3 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823408/

相关文章:

jQuery 偏移问题 : not changing the position of a SWF

javascript - 检查 Canvas 是否为黑色

javascript - Textarea\n 到 <br> 不转义

javascript - 在 html 中创建 javascript 循环

javascript - 仅使用 CSS 关闭菜单

javascript - 使用 setInterval 时如何停止等待光标

javascript - javascript可以从一个类中剪出一个特殊的部分,然后在任何其他地方使用吗?

html - 创建一个图像按钮,只允许您单击不透明部分

html - 将 Fixed div 设置为父容器的 100% 宽度

javascript - 使用 AJAX/PHP/SQL 更新选择/选项元素值