2013-04-25 105 views
3

我cliped图像的列表,每一个都有absoulate当前位置:使用绝对图像位置

<img style='position:absolute;clip(xpx xpx xpx xpx);'/> 
<img style='position:absolute;clip(xpx xpx xpx xpx);'/> 
<img style='position:absolute;clip(xpx xpx xpx xpx);'/> 
<img style='position:absolute;clip(xpx xpx xpx xpx);'/> 
<img style='position:absolute;clip(xpx xpx xpx xpx);'/> 

这里的问题是,所有的图像都在同一个地方,我想接下来的去给别人。

我做绝对位置,因为剪贴图像;

我该怎么办?

+3

请提供一些代码或[jsFiddle](http://jsfiddle.net) – Adrift 2013-04-25 19:30:34

+0

似乎'float:left'可能比'position:absolute'更好的选择吗? – louisbros 2013-04-25 19:31:40

+0

因为我在图像上使用剪辑,我不能使用浮动 – Ata 2013-04-25 19:32:41

回答

0

要么使用float:left,要么将每个图像的left属性设置为所有先前图像的宽度的总和。

2

为什么你将它们绝对定位?

要动态地把它们放在另一个之后,你需要把它们包装成没有完全定位的东西。像一个相对定位的列表元素

<ul> 
    <li style="position:relative"> 
     <img src="" style="position:absolute" /> 
    </li> 
</ul> 

如果你不能包装它们,你将不得不用javascript来做,就像这样。

var memo = 0; 
$("img").each(function() { 
    $(this).css("left", memo+"px"); 
    memo += $(this).outerWidth(true); 
}); 
1

绝对位置将元素排除在元素流之外。因此你的元素不会互相推each。

如果您确实需要使用绝对位置,您需要为每个img设置不同的css属性left。顶部和左侧的标准值为0.因此,它们位于相同的位置,或者位于彼此的顶部。

+0

是的,完全像你说的,我使用absoulte,因为我使用剪辑。你有其他建议吗? – Ata 2013-04-25 19:41:03

+0

您是否尝试为您的图像设置左值? – 2013-04-25 19:43:57

0

如果元素必须绝对定位,则可以使用:nth-child():nth-of-type()选择器并相应地调整left: Xpx

另一种选择,因为你正在使用内联样式,是只拘泥于一家left:和/或top:值来定位它,但是你想。

这就是说,好像使用clip会导致更多的问题,而不是它的价值!必须有办法解决这个问题。