ID与带图像滑块的类

时间:2014-10-20 18:22:53

标签: html css slider

我正在尝试使用HTML和CSS实现多个图像滑块。我能够使一个图像滑块工作,但当我尝试在html文档中使用多个滑块时,控件从一个滑块移动到下一个滑块。我假设这与ID和类的创建有关...?

任何与此相关的帮助都会很棒,非常感谢!请参阅以下代码:

HTML:

<html>
    <head>
    <title>My Now Amazing Webpage</title>
    <link rel="stylesheet" type="text/css" href="css/please.css"/>
    </head>
<body>

    <article id=slider>     

        <!-- Slider Setup -->

        <input checked type=radio name=slider id=slide1 />
        <input type=radio name=slider id=slide2 />
        <input type=radio name=slider id=slide3 />
        <input type=radio name=slider id=slide4 />
        <input type=radio name=slider id=slide5 />


        <!-- The Slider -->
        <div id=slides>     
            <div id=overflow>

                <div class=inner>               
                    <article>
                        <img src="images/swiftlogo.png" />
                    </article>                  
                    <article>
                        <img src="images/UXicon.png" />
                    </article>                  
                    <article>
                        <img src="images/xcodelogo.png" />
                    </article>
                    <article>
                        <img src="images/globe-homescreen.png" />
                    </article>
                </div> <!-- .inner -->
            </div> <!-- #overflow -->
        </div> <!-- #slides -->
        <!-- Controls and Active Slide Display -->


        <div id=controls>

            <label for=slide1></label>
            <label for=slide2></label>
            <label for=slide3></label>
            <label for=slide4></label>
            <label for=slide5></label>

        </div> <!-- #controls -->

        <div id=active>

            <label for=slide1></label>
            <label for=slide2></label>
            <label for=slide3></label>
            <label for=slide4></label>
            <label for=slide5></label>

        </div> <!-- #active -->
    </article>



<article id=slider>     

        <!-- Slider Setup -->

        <input checked type=radio name=slider id=slide1 />
        <input type=radio name=slider id=slide2 />
        <input type=radio name=slider id=slide3 />
        <input type=radio name=slider id=slide4 />
        <input type=radio name=slider id=slide5 />


        <!-- The Slider -->
        <div id=slides>     
            <div id=overflow>

                <div class=inner>               
                    <article>
                        <img src="images/swiftlogo.png" />
                    </article>                  
                    <article>
                        <img src="images/UXicon.png" />
                    </article>                  
                    <article>
                        <img src="images/xcodelogo.png" />
                    </article>
                    <article>
                        <img src="images/globe-homescreen.png" />
                    </article>
                </div> <!-- .inner -->
            </div> <!-- #overflow -->
        </div> <!-- #slides -->
        <!-- Controls and Active Slide Display -->


        <div id=controls>

            <label for=slide1></label>
            <label for=slide2></label>
            <label for=slide3></label>
            <label for=slide4></label>
            <label for=slide5></label>

        </div> <!-- #controls -->

        <div id=active>

            <label for=slide1></label>
            <label for=slide2></label>
            <label for=slide3></label>
            <label for=slide4></label>
            <label for=slide5></label>

        </div> <!-- #active -->
    </article>

    </body>
</html>


CSS:

/* CSS */



#slider {
    text-align: center;
}

label, a {
    color: teal;
    cursor: pointer;
    text-decoration: none;
}
label:hover, a:hover {
    color: #000 !important;
}
* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
label, #active, img { -moz-user-select:none;-webkit-user-select:none; }
.catch { display: block; height: 0; overflow: hidden; }
#slider {
    margin: 0 auto;
    width:340px;
}


/* NEW EXPERIMENT */
/* Slider Setup */

input {
    display: none;
}

#slide1:checked ~ #slides .inner { margin-left:0; }
#slide2:checked ~ #slides .inner { margin-left:-100%; }
#slide3:checked ~ #slides .inner { margin-left:-200%; }
#slide4:checked ~ #slides .inner { margin-left:-300%; }
#slide5:checked ~ #slides .inner { margin-left:-400%; }

#overflow {
    width: 100%;
    overflow: hidden;
}

article img {
    width: 100%;
}

#slides .inner {
    width: 500%;
    line-height: 0;
}

#slides article {
    width: 20%;
    float: left;
}

/* Slider Styling */

/* Control Setup */

#controls {
    margin: 5% 0 0 0;
    width: 100%;
    height: 60px;
}

#controls label { 
    display: none;
    width: 20px;
    height: 20px;
    opacity: 0.7;
}

#active {
    margin: 10px 0 0;
    text-align: center;
    display:none;
}

#active label {
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    display: inline-block;
    width: 10px;
    height: 10px;
    background: #bbb;
}

#active label:hover {
    background: #ccc;
    border-color: #777 !important;
}

#controls label:hover {
    opacity: 1;

}

#slide1:checked ~ #controls label:nth-child(2), 
#slide2:checked ~ #controls label:nth-child(3), 
#slide3:checked ~ #controls label:nth-child(4), 
#slide4:checked ~ #controls label:nth-child(5), 
#slide5:checked ~ #controls label:nth-child(1) {
    background: url('http://www.phlume.com/chad/testtest/next.png') no-repeat;
    float: right;
    margin: 0 10px 0 0;
    display: block;
}


#slide1:checked ~ #controls label:nth-child(5),
#slide2:checked ~ #controls label:nth-child(1),
#slide3:checked ~ #controls label:nth-child(2),
#slide4:checked ~ #controls label:nth-child(3),
#slide5:checked ~ #controls label:nth-child(4) {
    background: url('http://www.phlume.com/chad/testtest/prev.png') no-repeat;
    float: left;
    margin: 0 0 0 10px;
    display: block;
}

#slide1:checked ~ #active label:nth-child(1),
#slide2:checked ~ #active label:nth-child(2),
#slide3:checked ~ #active label:nth-child(3),
#slide4:checked ~ #active label:nth-child(4),
#slide5:checked ~ #active label:nth-child(5) {
    background: #333;
    border-color: #333 !important;
}



/* Slider Styling */

#slides {
    margin: 45px 0 0;
    x-webkit-border-radius: 5px;
    x-moz-border-radius: 5px;
    xborder-radius: 5px;
    xbox-shadow: 1px 1px 4px #666;
    padding: 1%;
    background: #fff;
}


/* Animation */

#slides .inner {
    -webkit-transform: translateZ(0);
    -webkit-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); 
    -moz-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); 
    -ms-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); 
     -o-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); 
        transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */

    -webkit-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); 
    -moz-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); 
    -ms-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); 
     -o-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); 
        transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */
}

#slider {
    -webkit-transform: translateZ(0);
    -webkit-transition: all 0.5s ease-out;
    -moz-transition: all 0.5s ease-out;
    -o-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out;
}

#controls label{
    -webkit-transform: translateZ(0);
    -webkit-transition: opacity 0.2s ease-out;
    -moz-transition: opacity 0.2s ease-out;
    -o-transition: opacity 0.2s ease-out;
    transition: opacity 0.2s ease-out;
}

#slide1:checked ~ #slides article:nth-child(1) .info,
#slide2:checked ~ #slides article:nth-child(2) .info,
#slide3:checked ~ #slides article:nth-child(3) .info,
#slide4:checked ~ #slides article:nth-child(4) .info,
#slide5:checked ~ #slides article:nth-child(5) .info {
    opacity: 1;
    -webkit-transition: all 1s ease-out 0.6s;
    -moz-transition: all 1s ease-out 0.6s;
    -o-transition: all 1s ease-out 0.6s;
    transition: all 1s ease-out 0.6s;
}

.info, #controls, #slides, #active, #active label, .info h3, .desktop, .tablet, .mobile {
    -webkit-transform: translateZ(0);
    -webkit-transition: all 0.5s ease-out;
    -moz-transition: all 0.5s ease-out;
    -o-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out;
}


@media only screen and (max-width: 850px) and (min-width: 450px) {

    #slider #controls {

        height: 50px;
    }

    #slider #controls label {
        -moz-transform: scale(0.8);
        -webkit-transform: scale(0.8);
        -o-transform: scale(0.8);
        -ms-transform: scale(0.8);
        transform: scale(0.8);
    }

    #slider #slides {
        padding: 1% 0;
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-radius: 0px;
    }

    #slider #active {
        margin: 22% 0 0;
    }

}

/* Mobile */

#mobile:checked ~ #slider #controls {
    margin: -28% 0 0 24%;
    width: 50%;
    height: 50px;
}

#mobile:checked ~ #slider #active {
    margin: 23% 0 0;
}

#mobile:checked ~ #slider #slides .info {
    opacity: 0 !important;
}

#mobile:checked ~ #slider #controls label {
    -moz-transform: scale(0.6);
    -webkit-transform: scale(0.6);
    -o-transform: scale(0.6);
    -ms-transform: scale(0.6);
    transform: scale(0.6);
}


@media only screen and (max-width: 450px) {

    #slider #controls {

        height: 50px;
    }

    #slider #active {
        margin: 23% 0 0;
    }

    #slider #slides {
        padding: 1% 0;
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-radius: 0px;
    }

    #slider #slides .info {
        opacity: 0 !important;
    }

    #slider #controls label {
        -moz-transform: scale(0.6);
        -webkit-transform: scale(0.6);
        -o-transform: scale(0.6);
        -ms-transform: scale(0.6);
        transform: scale(0.6);
    }

}


@media only screen and (min-width: 850px) {

    body {
        padding: 0 0px;
    }
}

1 个答案:

答案 0 :(得分:0)

答案很简单,一个id可以在html文件中使用一次,一个类可以多次使用。