在很多的博客網站或社交平臺上,我們經常會看到各種形式的照片墻展示,它們可能是名片式的,也可能是瀑布流式的,而這些照片墻的實現離不開CSS技術的幫助。
本文將通過CSS技術來實現一種微信風格的照片墻。我們首先需要準備一組帶有不同寬高比的圖片,并給它們加上不同的Hover效果,使得鼠標移到照片上時,可以有不同的反應。
.img-item { position: relative; overflow: hidden; transition: all .3s ease-in-out; cursor: pointer; } .img-item img { width: 100%; height: 100%; display: block; transition: all .3s ease-in-out; } .img-item:before { content: ' '; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: rgba(0, 0, 0, .5); width: 100%; height: 100%; z-index: 2; opacity: 0; } .img-item:hover:before { opacity: 1; } .img-item:hover img { transform: scale(1.1); }
代碼中,我們首先定義了一個.img-item類,該類定義了一些覆蓋在圖片上面的半透明黑色遮罩,并在鼠標移上去時出現。同時,也定義了圖片的放大效果。
接下來,我們將所有的照片設置成瀑布流,并通過flex和column-count實現每列圖片的自適應布局。
.img-wall { margin: 0 auto; display: flex; flex-direction: row; flex-wrap: wrap; max-width: 1000px; column-count: 4; column-gap: 10px; } .img-item:nth-child(5n+1), .img-item:nth-child(5n+5) { width: calc(100% - 10px); height: calc(100% - 10px); } .img-item:nth-child(5n+2), .img-item:nth-child(5n+3), .img-item:nth-child(5n+4) { width: calc(50% - 7.5px); height: calc(50% - 7.5px); }
代碼中我們首先定義了一個.img-wall類,將照片放入該類中。然后通過設置column-count屬性,使得照片自適應布局到每一列中,并通過設置width和height屬性來挑選出5張照片中的第1和5張,和第2、3、4張等三種不同的照片大小和布局方式。
最后,我們通過以上的CSS效果實現了一種微信風格的照片墻,具有觀賞性高,易于自適應布局等優點,讓網頁布局更加美觀。
上一篇css 影藏div