純CSS實(shí)現(xiàn)輪播圖是最近很流行的前端技巧,通過CSS3的transform屬性和CSS動(dòng)畫實(shí)現(xiàn)圖片輪播效果,無需JavaScript的支持,而且還具有良好的性能和兼容性。
首先,我們需要使用HTML代碼創(chuàng)建輪播圖的結(jié)構(gòu),一般是使用ul和li標(biāo)簽來完成:
<div class="slider"> <ul> <li><img src="image1.jpg" alt="image1"></li> <li><img src="image2.jpg" alt="image2"></li> <li><img src="image3.jpg" alt="image3"></li> </ul> </div>
然后,我們可以使用CSS對(duì)輪播圖進(jìn)行樣式設(shè)置,比如設(shè)置輪播圖的寬度和高度、隱藏多余圖片、設(shè)置圖片為絕對(duì)定位以實(shí)現(xiàn)層疊效果等:
.slider{ position: relative; width: 600px; height: 300px; overflow: hidden; } ul{ position: relative; list-style: none; margin: 0; padding: 0; width: 300%; left: -100%; } li{ position: absolute; display: block; float: left; width: 33.3333%; height: auto; padding: 0; margin: 0; } img{ width: 100%; height: auto; } /* 隱藏多余圖片 */ li:nth-child(1) img{ display: block; } li:nth-child(2) img, li:nth-child(3) img{ display: none; }
最后,我們使用CSS3的transform屬性和CSS動(dòng)畫進(jìn)行輪播圖的切換效果,比如使用左移動(dòng)作切換到下一張圖片:
/* CSS3輪播動(dòng)畫效果 */ @-webkit-keyframes sliderAni{ 0%{ -webkit-transform: translateX(0%); transform: translateX(0%); } 100%{ -webkit-transform: translateX(-100%); transform: translateX(-100%); } } .slider ul li{ -webkit-animation: sliderAni 20s ease-in-out infinite; animation: sliderAni 20s ease-in-out infinite; } .slider:hover ul li{ -webkit-animation-play-state: paused; animation-play-state: paused; }
至此,我們就成功地使用純CSS實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的輪播圖,而且還具有良好的兼容性和性能,優(yōu)雅地解決了圖片輪播問題。