纯HTML+CSS打造轮播图

124 阅读2分钟

本文介绍了如何利用纯HTML+CSS技术,不写一句js代码如何打造轮播图的方法

话不多说,先看效果:

效果图:

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS3仿JS轮播图</title>
    <link rel="stylesheet" href="lbimage.css"/>
</head>
<body>
    <div class="photo" id="photo">
        <!--//1-->
        <input type="radio" name="btn" id="img1" checked/>
        <div class="control">
            <div class="image"><img src="images/img1.jpg"/></div>
            <div class="nav">
                <label for="img6" class="up leftjianbian"><</label>
                <label for="img2" class="down rightjianbian">></label>
            </div>
        </div>
        <!--//2-->
        <input type="radio" name="btn" id="img2"/>
        <div class="control">
            <div class="image"><img src="images/img2.jpg"/></div>
            <div class="nav">
                <label for="img1" class="up leftjianbian"><</label>
                <label for="img3" class="down rightjianbian">></label>
            </div>
        </div>
        <!--//3-->
        <input type="radio" name="btn" id="img3"/>
        <div class="control">
            <div class="image"><img src="images/img3.jpg"/></div>
            <div class="nav">
                <label for="img2" class="up leftjianbian"><</label>
                <label for="img4" class="down rightjianbian">></label>
            </div>
        </div>
        <!--//4-->
        <input type="radio" name="btn" id="img4"/>
        <div class="control">
            <div class="image"><img src="images/img4.jpg"/></div>
            <div class="nav">
                <label for="img3" class="up leftjianbian"><</label>
                <label for="img5" class="down rightjianbian">></label>
            </div>
        </div>
        <!--//5-->
        <input type="radio" name="btn" id="img5"/>
        <div class="control">
            <div class="image"><img src="images/img5.jpg"/></div>
            <div class="nav">
                <label for="img4" class="up leftjianbian"><</label>
                <label for="img6" class="down rightjianbian">></label>
            </div>
        </div>
        <!--//6-->
        <input type="radio" name="btn" id="img6"/>
        <div class="control">
            <div class="image"><img src="images/img6.jpg"/></div>
            <div class="nav">
                <label for="img5" class="up leftjianbian"><</label>
                <label for="img1" class="down rightjianbian">></label>
            </div>
        </div>
        <div class="dots">
            <label for="img1" class="dot" id="dot1"></label>
            <label for="img2" class="dot" id="dot2"></label>
            <label for="img3" class="dot" id="dot3"></label>
            <label for="img4" class="dot" id="dot4"></label>
            <label for="img5" class="dot" id="dot5"></label>
            <label for="img6" class="dot" id="dot6"></label>
        </div>
    </div>
</body>
</html>

css部分:

@charset "utf-8";
body{
    background-image: url("images/bbbefb51f8198618b654e23e48ed2e738ad4e69a.jpg");
    background-size: cover;
}
img{
    width: 850px;
    height: 500px;
}
.photo{
    width: 900px;
    height: 550px;
    border: 1px solid #555555;
    margin: auto auto;
    position: relative;
    background: #ffffff;
    box-shadow: 0 10px 80px rgba(0,0,0,.6)
}
.photo input{
    display: none;
}
.image{
    position: absolute;
    top: 0px;
    left: 0px;
    width: 800px;
    height: 450px;
    margin: 25px 25px;
    transform: scale(0);
    opacity: 0;
    transition: all 0.7s;
}
.image img{
 
}
.nav label{
    width: 150px;
    height: 500px;
    margin: 25px 25px;
    position: absolute;
    z-index: 10;
    opacity: 0;
    display: none;
    cursor: pointer;
    transition: opacity 0.2s;
    color: #ffffff;
    font-size: 50px;
    line-height: 450px;
    text-align: center;
    text-shadow: 0 0 15px #555555);
}
.leftjianbian{
    background: linear-gradient(right , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
    background: -o-linear-gradient(right , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
    background: -ms-linear-gradient(right , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
    background: -moz-linear-gradient(right , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
    background: -webkit-linear-gradient(right , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
}
.rightjianbian{
    background: linear-gradient(left , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
    background: -o-linear-gradient(left , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
    background: -ms-linear-gradient(left , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
    background: -moz-linear-gradient(left , rgba(250, 242, 239,0) 1% , rgba(158, 148, 166,0.5) 100%);
    background: -webkit-linear-gradient(left , rgba(250, 242, 239,0) 10% , rgba(158, 148, 166,0.5) 100%);
}
.image:hover + .nav label{
    opacity: 0.5;
}
.nav label:hover{
    opacity: 1;
}
.nav .down{
    right: 0;
}
input:checked + .control .image{
    opacity: 1;
    transform: scale(1);
    transition: all 1s;
}
input:checked + .control .nav label{
    display: block;
}
.dots{
    width:100%;
    height: 20px;
    position: absolute;
    bottom: 30px;
    text-align: center;
}
.dot{
    width: 10px;
    height: 10px;
    margin: 0px 5px;
    border-radius: 50%;
    position: relative;
    display: inline-block;
    background: rgba(0,0,0,0.3);
}
input#img1:checked ~ .dots label#dot1,
input#img2:checked ~ .dots label#dot2,
input#img3:checked ~ .dots label#dot3,
input#img4:checked ~ .dots label#dot4,
input#img5:checked ~ .dots label#dot5,
input#img6:checked ~ .dots label#dot6{
    background: rgba(0,0,0,0.7);
}