Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将图像组合到堆栈中_Javascript_Html_Css - Fatal编程技术网

Javascript 如何将图像组合到堆栈中

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

我想将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-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。