Javascript 如何将图像组合到堆栈中
我想将3个图像组合成一个堆栈,如下图所示: 堆栈的大小必须为48x48 有什么办法吗?我相信只有通过CSS和使用一点JS才能做到这一点。这是可能的: 它基本上确保有特定数量的元素,指定元素大小:Javascript 如何将图像组合到堆栈中,javascript,html,css,Javascript,Html,Css,我想将3个图像组合成一个堆栈,如下图所示: 堆栈的大小必须为48x48 有什么办法吗?我相信只有通过CSS和使用一点JS才能做到这一点。这是可能的: 它基本上确保有特定数量的元素,指定元素大小: .block:first-child:nth-last-child(2), .block:first-child:nth-last-child(2) ~ div { width: 42px; height: 42px; } 然后决定需要进行多少校准: .block:first-chi
.block:first-child:nth-last-child(2),
.block:first-child:nth-last-child(2) ~ div {
width: 42px;
height: 42px;
}
然后决定需要进行多少校准:
.block:first-child:nth-last-child(2) ~ div:nth-child(2) {top: 6px; left: 6px}
但这一比例为n^2,这意味着CSS的数量将成倍增加
这个解决方案非常不方便,因为CSS无法计算其父元素中的元素,这意味着您需要为元素计数的每一层添加越来越多的CSS类。使用Javascript会容易得多
编辑:
添加了SASS版本:
编辑#2:
该问题已被编辑。首先,它需要支持N个元素。这是可能的:
它基本上确保有特定数量的元素,指定元素大小:
.block:first-child:nth-last-child(2),
.block:first-child:nth-last-child(2) ~ div {
width: 42px;
height: 42px;
}
然后决定需要进行多少校准:
.block:first-child:nth-last-child(2) ~ div:nth-child(2) {top: 6px; left: 6px}
但这一比例为n^2,这意味着CSS的数量将成倍增加
这个解决方案非常不方便,因为CSS无法计算其父元素中的元素,这意味着您需要为元素计数的每一层添加越来越多的CSS类。使用Javascript会容易得多
编辑:
添加了SASS版本:
编辑#2:
该问题已被编辑。起初,它需要支持N个元素。不确定您在这里要求什么。位置:绝对不是一个选项?如果它是一个动态的图像堆栈(即图像的数量可以改变),那么你可能也需要一点js(来计算大小和应用z索引),但由于它们将如此之小,你真的需要像那样堆叠它们吗?您几乎看不到“当它在堆栈中时,它必须调整大小”的效果。如果没有javascript,则无法检查它们是否是堆栈的。然后,您必须根据javascript条件调整高度和宽度。@BasSlagter,绝对位置可以是一个选项。好的,可能需要一点JS。不确定您在这里要问什么。位置:绝对不是一个选项?如果它是一个动态的图像堆栈(即图像的数量可以改变),那么你可能也需要一点js(来计算大小和应用z索引),但由于它们将如此之小,你真的需要像那样堆叠它们吗?您几乎看不到“当它在堆栈中时,它必须调整大小”的效果。如果没有javascript,则无法检查它们是否是堆栈的。然后,您必须根据javascript条件调整高度和宽度。@BasSlagter,绝对位置可以是一个选项。好的,可能需要一点JS。谢谢,我确信有N个元素的解决方案对我来说将是userfull。谢谢,我确信有N个元素的解决方案对我来说将是userfull。