让我把六边形蜂窝布局的制作过程从头到尾给你讲一遍。这种布局之所以流行,是因为六边形单元紧密排列,在二维平面里的空间利用率能达到100%,还能营造出一种非常和谐有序的美感。 我先给你看基础代码。在HTML里,我用v-for循环生成多个
容器,每个容器里放一张图片。接着在SCSS里设置变量,比如每行图片数n设为10,单张图片的宽高$size就是视口宽度除以10。然后通过overflow:hidden和padding控制容器的外观,再用flex布局把图片排成一行。为了让偶数行向左偏移半个宽度形成错位效果,我给它们加上了transform:translateX(-$size/2)。还有一个细节是通过margin-top:-$size/6解决了垂直间隙过大的问题。 有两个难题必须解决。第一个是偶数行开头的空白。为了消除这个问题,我采用了第二种方法:把$n设为9来计算行宽,第10张图片“跑出”视口后就会自动填补空白。第二个问题是六边形之间的缝隙太小。为了做出真实蜂巢的那种“空气感”,我把clip-path顶点的百分比从50%改成了95%和5%。 最后我加了个交互效果。当鼠标悬停在某张图片上时,用:hover伪类让它放大到原来的1.2倍,并把z-index提高到1来防止被覆盖。同时周围的图片缩小一半高度,这样视觉焦点就会瞬间锁定到这个被选中的六边形上。 这套代码运行起来非常流畅。只要把鼠标放到任何一张图片上,它就会像蜂巢门一样打开并放大,周围的图片也会同步缩小。