<body>
<div class='slider'>
<input name="input-slider" id='input-slide-0' type="radio" class='input-slide input-slide-num' >
<input name="input-slider" id='input-slide-1' type="radio" class='input-slide input-slide-num' >
<input name="input-slider" id='input-slide-2' type="radio" class='input-slide input-slide-num' >
<input name="input-slider" id='input-slide-3' type="radio" class='input-slide input-slide-num' >
<input name="input-slider" id='input-slide-autoplay' type="radio" class='input-slide' checked>
<ul>
<li class='slide-0'></li>
<li class='slide-1'></li>
<li class='slide-2'></li>
<li class='slide-3'></li>
</ul>
<div class='slide-description'>
<label class='slide-0'>
<h1 class="text-slide">Pure CSS</h1>
</label>
<label class='slide-1'>
<h1 class="text-slide">Pure CSS</h1>
</label>
<label class='slide-2'>
<h1 class="text-slide">Pure CSS</h1>
</label>
<label class='slide-3'>
<h1 class="text-slide">Pure CSS</h1>
</label>
</div>
<div class='slider-arrow-prev'>
<label class='slide-0' for='input-slide-0'></label>
<label class='slide-1' for='input-slide-1'></label>
<label class='slide-2' for='input-slide-2'></label>
<label class='slide-3' for='input-slide-3'></label>
</div>
<div class='slider-arrow-next'>
<label class='slide-0' for='input-slide-0'></label>
<label class='slide-1' for='input-slide-1'></label>
<label class='slide-2' for='input-slide-2'></label>
<label class='slide-3' for='input-slide-3'></label>
</div>
<div class='slider-dot'>
<label class='slide-0' for='input-slide-0'></label>
<label class='slide-1' for='input-slide-1'></label>
<label class='slide-2' for='input-slide-2'></label>
<label class='slide-3' for='input-slide-3'></label>
</div>
</div>
<div class="footer">
<p>
<span>Pure CSS Slider Autoplay</span>
<span>by <a href="https://codepen.io/panikaro/#" target="_blank">PaniKaro</a></span>
</p>
<p>
<span>Works on Firefox, Chrome, IE and more.</span>
<span>Include autoplay, prev/next buttons & bullets.</span>
<span>No more JavaScript ever again.</span>
<span>100% clean.</span>
</p>
<p>
<span>Version 1.0</span>
</p>
</div>
</body>
/* -------------------------------------------------------- reset */
@import url('https://fonts.googleapis.com/css?family=Audiowide|Monoton|Poiret+One|Raleway');
body{
width: 100%;
margin: 0 auto;
font-family: 'Raleway', sans-serif;
color: #FFF;
font-size: 1.75vw;
}
body *{
width: 100%;
position: relative;
display: block;
margin: 0 auto;
padding: 0;
text-align: center;
z-index: 100;
}
h1{
font-size: 6vw;
text-transform: uppercase;
font-weight: normal;
}
a{
color: inherit;
text-decoration: none;
outline: 0;
}
ul,
li{
list-style: none;
}
label{
cursor: pointer;
}
input{
display: none;
}
/* -------------------------------------------------------- codepen */
/* -------------------------------------------------------- slider */
.slider{
height: 25vw;
overflow: hidden;
}
/* -------------------------------------------------------- slide */
.slider > ul {
height: 100%;
z-index: 100;
}
.slider > ul > li{
height: 100%;
position: absolute;
left: 0;
top: 0;
opacity: 0;
z-index: 1;
-webkit-transition: all 2000ms ease;
-moz-transition: all 2000ms ease;
-ms-transition: all 2000ms ease;
-o-transition: all 2000ms ease;
transition: all 2000ms ease;
}
.slider > #input-slide-0:checked ~ ul > li.slide-0,
.slider > #input-slide-1:checked ~ ul > li.slide-1,
.slider > #input-slide-2:checked ~ ul > li.slide-2,
.slider > #input-slide-3:checked ~ ul > li.slide-3{
opacity: 1;
z-index: 2;
}
.slider > ul > li.slide-0{
background-color: #00DBF9;
}
.slider > ul > li.slide-1{
background-color: #47D7ED;
}
.slider > ul > li.slide-2{
background-color: #0093E9;
}
.slider > ul > li.slide-3{
background-color: #0073B6;
}
/* -------------------------------------------------------- arrow */
.slider > .slider-arrow-prev,
.slider > .slider-arrow-next {
position: absolute;
top: 50%;
left: 0;
z-index: 300;
}
.slider > .slider-arrow-prev > label,
.slider > .slider-arrow-next > label {
position: absolute;
width: 5vw;
height: 5vw;
margin-top: -2.5vw;
opacity: 0;
background-size: 100% auto;
background-position: center;
z-index: -1;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.slider > #input-slide-0:checked ~ .slider-arrow-prev > label.slide-3,
.slider > #input-slide-0:checked ~ .slider-arrow-next > label.slide-1,
.slider > #input-slide-1:checked ~ .slider-arrow-prev > label.slide-0,
.slider > #input-slide-1:checked ~ .slider-arrow-next > label.slide-2,
.slider > #input-slide-2:checked ~ .slider-arrow-prev > label.slide-1,
.slider > #input-slide-2:checked ~ .slider-arrow-next > label.slide-3,
.slider > #input-slide-3:checked ~ .slider-arrow-prev > label.slide-2,
.slider > #input-slide-3:checked ~ .slider-arrow-next > label.slide-0 {
z-index: 1;
}
.slider:hover > .slider-arrow-prev > label,
.slider:hover > .slider-arrow-next > label{
opacity: 1;
}
.slider > .slider-arrow-prev > label {
left: 5vw;
background-image: url(http://panikaro.interiowo.pl/img/arrow-left.png);
}
.slider > .slider-arrow-next > label {
right: 5vw;
background-image: url(http://panikaro.interiowo.pl/img/arrow-right.png);
}
/* -------------------------------------------------------- dot */
.slider > .slider-dot {
position: relative;
margin-top: -4vw;
text-align: center;
z-index: 300;
font-size: 0;
}
.slider > .slider-dot > label {
position: relative;
display: inline-block;
margin: 1vw 0.5vw;
width: 1vw;
height: 1vw;
border-radius: 50%;
background-color: #FFF;
}
.slider > #input-slide-0:checked ~ .slider-dot > label.slide-0,
.slider > #input-slide-1:checked ~ .slider-dot > label.slide-1,
.slider > #input-slide-2:checked ~ .slider-dot > label.slide-2,
.slider > #input-slide-3:checked ~ .slider-dot > label.slide-3 {
background-color: #FD7FE3;
}
.slider > .slider-dot > label:hover{
background-color: #7E6DE0 !important;
}
/* -------------------------------------------------------- description */
.slider > .slide-description{
position: absolute;
width: 50%;
top: calc(50% - 3vw);
left: 25%;
z-index: 200;
}
.slider > .slide-description > label{
position: absolute;
width: 100%;
top: 0;
left: 0;
cursor: default;
z-index: 0;
opacity: 0;
visibility: hidden;
-webkit-transition: all 0.75s ease;
-moz-transition: all 0.75s ease;
-ms-transition: all 0.75s ease;
-o-transition: all 0.75s ease;
transition: all 0.75s ease;
}
.slider > #input-slide-0:checked ~ .slide-description > .slide-0,
.slider > #input-slide-1:checked ~ .slide-description > .slide-1,
.slider > #input-slide-2:checked ~ .slide-description > .slide-2,
.slider > #input-slide-3:checked ~ .slide-description > .slide-3{
z-index: 2;
opacity: 1;
visibility: visible;
}
.slider > .slide-description > label > .text-slide{
margin: 0 auto;
line-height: 6vw;
text-align: center;
}
.slider > .slide-description > .slide-0{
font-family: 'Raleway', sans-serif;
}
.slider > .slide-description > .slide-1{
font-family: 'Poiret One', cursive;
}
.slider > .slide-description > .slide-2{
font-family: 'Monoton', cursive;
}
.slider > .slide-description > .slide-3{
font-family: 'Audiowide', cursive;
}
/* -------------------------------------------------------- autoplay */
/*
if you don't want to autoplay
just check input "slide-0"
instead of input "play" in html code
and remove the code below
*/
/* -------------------------------------------------------- autoplay slide */
@-webkit-keyframes slide{
0%, 100% { opacity: 0; }
6%, 25% { opacity: 1; z-index: 2; }
30%, 50% { opacity: 0; z-index: 2; }
}
@-moz-keyframes slide{
0%, 100% { opacity: 0; }
6%, 24% { opacity: 1; z-index: 2; }
30%, 50% { opacity: 0; z-index: 2; }
}
@-ms-keyframes slide{
0%, 100% { opacity: 0; }
6%, 25% { opacity: 1; z-index: 2; }
30%, 50% { opacity: 0; z-index: 2; }
}
@-o-keyframes slide{
0%, 100% { opacity: 0; }
6%, 25% { opacity: 1; z-index: 2; }
30%, 50% { opacity: 0; z-index: 2; }
}
@keyframes slide{
0%, 100% { opacity: 0; }
6%, 25% { opacity: 1; z-index: 2; }
30%, 50% { opacity: 0; z-index: 2; }
}
.slider > #input-slide-autoplay:checked ~ ul > li.slide-0{
-webkit-animation: slide 32000ms infinite -2000ms linear;
-moz-animation: slide 32000ms infinite -2000ms linear;
-ms-animation: slide 32000ms infinite -2000ms linear;
-o-animation: slide 32000ms infinite -2000ms linear;
animation: slide 32000ms infinite -2000ms linear;
}
.slider > #input-slide-autoplay:checked ~ ul > li.slide-1{
-webkit-animation: slide 32000ms infinite 6000ms linear;
-moz-animation: slide 32000ms infinite 6000ms linear;
-ms-animation: slide 32000ms infinite 6000ms linear;
-o-animation: slide 32000ms infinite 6000ms linear;
animation: slide 32000ms infinite 6000ms linear;
}
.slider > #input-slide-autoplay:checked ~ ul > li.slide-2{
-webkit-animation: slide 32000ms infinite 14000ms linear;
-moz-animation: slide 32000ms infinite 14000ms linear;
-ms-animation: slide 32000ms infinite 14000ms linear;
-o-animation: slide 32000ms infinite 14000ms linear;
animation: slide 32000ms infinite 14000ms linear;
}
.slider > #input-slide-autoplay:checked ~ ul > li.slide-3{
-webkit-animation: slide 32000ms infinite 22000ms linear;
-moz-animation: slide 32000ms infinite 22000ms linear;
-ms-animation: slide 32000ms infinite 22000ms linear;
-o-animation: slide 32000ms infinite 22000ms linear;
animation: slide 32000ms infinite 22000ms linear;
}
.slider > #input-slide-autoplay:checked ~ ul > li{
-webkit-transition: none;
-moz-transition: none;
-ms-transition: none;
-o-transition: none;
transition: none;
}
/* -------------------------------------------------------- autoplay arrow */
@-webkit-keyframes arrow {
0%, 24% { z-index: 1; }
25%, 100% { z-index: -1; }
}
@-moz-keyframes arrow {
0%, 24% { z-index: 1; }
25%, 100% { z-index: -1; }
}
@-ms-keyframes arrow {
0%, 24% { z-index: 1; }
25%, 100% { z-index: -1; }
}
@-o-keyframes arrow {
0%, 24% { z-index: 1; }
25%, 100% { z-index: -1; }
}
@keyframes arrow {
0%, 24% { z-index: 1; }
25%, 100% { z-index: -1; }
}
.slider > #input-slide-autoplay:checked ~ .slider-arrow-prev > label.slide-3,
.slider > #input-slide-autoplay:checked ~ .slider-arrow-next > label.slide-1{
-webkit-animation: arrow 32000ms infinite -2000ms;
-moz-animation: arrow 32000ms infinite -2000ms;
-ms-animation: arrow 32000ms infinite -2000ms;
-o-animation: arrow 32000ms infinite -2000ms;
animation: arrow 32000ms infinite -2000ms;
}
.slider > #input-slide-autoplay:checked ~ .slider-arrow-prev > label.slide-0,
.slider > #input-slide-autoplay:checked ~ .slider-arrow-next > label.slide-2{
-webkit-animation: arrow 32000ms infinite 6000ms;
-moz-animation: arrow 32000ms infinite 6000ms;
-ms-animation: arrow 32000ms infinite 6000ms;
-o-animation: arrow 32000ms infinite 6000ms;
animation: arrow 32000ms infinite 6000ms;
}
.slider > #input-slide-autoplay:checked ~ .slider-arrow-prev > label.slide-1,
.slider > #input-slide-autoplay:checked ~ .slider-arrow-next > label.slide-3{
-webkit-animation: arrow 32000ms infinite 14000ms;
-moz-animation: arrow 32000ms infinite 14000ms;
-ms-animation: arrow 32000ms infinite 14000ms;
-o-animation: arrow 32000ms infinite 14000ms;
animation: arrow 32000ms infinite 14000ms;
}
.slider > #input-slide-autoplay:checked ~ .slider-arrow-prev > label.slide-2,
.slider > #input-slide-autoplay:checked ~ .slider-arrow-next > label.slide-0{
-webkit-animation: arrow 32000ms infinite 22000ms;
-moz-animation: arrow 32000ms infinite 22000ms;
-ms-animation: arrow 32000ms infinite 22000ms;
-o-animation: arrow 32000ms infinite 22000ms;
animation: arrow 32000ms infinite 22000ms;
}
/* -------------------------------------------------------- autoplay dot */
@-webkit-keyframes dot {
0%, 24% { background-color: #FD7FE3; }
25%, 100% { background: #FFF; }
}
@-moz-keyframes dot {
0%, 24% { background-color: #FD7FE3; }
25%, 100% { background: #FFF; }
}
@-ms-keyframes dot {
0%, 24% { background-color: #FD7FE3; }
25%, 100% { background: #FFF; }
}
@-o-keyframes dot {
0%, 24% { background-color: #FD7FE3; }
25%, 100% { background: #FFF; }
}
@keyframes dot {
0%, 24% { background-color: #FD7FE3; }
25%, 100% { background: #FFF; }
}
.slider > #input-slide-autoplay:checked ~ .slider-dot > label.slide-0{
-webkit-animation: dot 32000ms infinite -2000ms;
-moz-animation: dot 32000ms infinite -2000ms;
-ms-animation: dot 32000ms infinite -2000ms;
-o-animation: dot 32000ms infinite -2000ms;
animation: dot 32000ms infinite -2000ms;
}
.slider > #input-slide-autoplay:checked ~ .slider-dot > label.slide-1{
-webkit-animation: dot 32000ms infinite 6000ms;
-moz-animation: dot 32000ms infinite 6000ms;
-ms-animation: dot 32000ms infinite 6000ms;
-o-animation: dot 32000ms infinite 6000ms;
animation: dot 32000ms infinite 6000ms;
}
.slider > #input-slide-autoplay:checked ~ .slider-dot > label.slide-2{
-webkit-animation: dot 32000ms infinite 14000ms;
-moz-animation: dot 32000ms infinite 14000ms;
-ms-animation: dot 32000ms infinite 14000ms;
-o-animation: dot 32000ms infinite 14000ms;
animation: dot 32000ms infinite 14000ms;
}
.slider > #input-slide-autoplay:checked ~ .slider-dot > label.slide-3{
-webkit-animation: dot 32000ms infinite 22000ms;
-moz-animation: dot 32000ms infinite 22000ms;
-ms-animation: dot 32000ms infinite 22000ms;
-o-animation: dot 32000ms infinite 22000ms;
animation: dot 32000ms infinite 22000ms;
}
/* -------------------------------------------------------- autoplay description */
@-webkit-keyframes description{
0%, 5% { opacity: 0; z-index: 2; visibility: visible; }
6%, 24% { opacity: 1; z-index: 2; visibility: visible; }
25%, 100% { opacity: 0; z-index: 0; visibility: hidden; }
}
@-moz-keyframes description{
0%, 5% { opacity: 0; z-index: 2; visibility: visible; }
6%, 24% { opacity: 1; z-index: 2; visibility: visible; }
25%, 100% { opacity: 0; z-index: 0; visibility: hidden; }
}
@-ms-keyframes description{
0%, 5% { opacity: 0; z-index: 2; visibility: visible; }
6%, 24% { opacity: 1; z-index: 2; visibility: visible; }
25%, 100% { opacity: 0; z-index: 0; visibility: hidden; }
}
@-o-keyframes description{
0%, 5% { opacity: 0; z-index: 2; visibility: visible; }
6%, 24% { opacity: 1; z-index: 2; visibility: visible; }
25%, 100% { opacity: 0; z-index: 0; visibility: hidden; }
}
@keyframes description{
0%, 5% { opacity: 0; z-index: 2; visibility: visible; }
6%, 24% { opacity: 1; z-index: 2; visibility: visible; }
25%, 100% { opacity: 0; z-index: 0; visibility: hidden; }
}
.slider > #input-slide-autoplay:checked ~ .slide-description > .slide-0{
-webkit-animation: description 32000ms infinite -2000ms ease;
-moz-animation: description 32000ms infinite -2000ms ease;
-ms-animation: description 32000ms infinite -2000ms ease;
-o-animation: description 32000ms infinite -2000ms ease;
animation: description 32000ms infinite -2000ms ease;
}
.slider > #input-slide-autoplay:checked ~ .slide-description > .slide-1{
-webkit-animation: description 32000ms infinite 6000ms ease;
-moz-animation: description 32000ms infinite 6000ms ease;
-ms-animation: description 32000ms infinite 6000ms ease;
-o-animation: description 32000ms infinite 6000ms ease;
animation: description 32000ms infinite 6000ms ease;
}
.slider > #input-slide-autoplay:checked ~ .slide-description > .slide-2{
-webkit-animation: description 32000ms infinite 14000ms ease;
-moz-animation: description 32000ms infinite 14000ms ease;
-ms-animation: description 32000ms infinite 14000ms ease;
-o-animation: description 32000ms infinite 14000ms ease;
animation: description 32000ms infinite 14000ms ease;
}
.slider > #input-slide-autoplay:checked ~ .slide-description > .slide-3{
-webkit-animation: description 32000ms infinite 22000ms ease;
-moz-animation: description 32000ms infinite 22000ms ease;
-ms-animation: description 32000ms infinite 22000ms ease;
-o-animation: description 32000ms infinite 22000ms ease;
animation: description 32000ms infinite 22000ms ease;
}
.slider > #input-slide-autoplay:checked ~ .slide-description > label{
-webkit-transition: none;
-moz-transition: none;
-ms-transition: none;
-o-transition: none;
transition: none;
}
/* -------------------------------------------------------- end codepen */
/* -------------------------------------------------------- footer */
.footer{
width: 30%;
margin: 5vw auto;
text-align: center;
}
.footer p{
font-family: 'Raleway', sans-serif;
font-size: 1vw;
color: #000;
font-weight: normal;
line-height: normal;
text-transform: none;
padding: 1vw;
}
.footer p span{
display: block;
}
.footer a{
display: inline;
text-transform: uppercase;
border-bottom: 0.1vw solid #000;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.