2016-04-26 13 views
1

Ich habe einen Schieberegler mit CSS erstellt, aber wenn ich zum letzten Element komme, bewegt es sich auf die linke Seite.CSS Slider bewegt sich nach links

/*Slider */ 
 

 
input[name="slider-select-element"] { 
 
    display: none; 
 
} 
 
#slider-arrows { 
 
    margin: -10% auto 0 auto; 
 
    width: 80%; 
 
} 
 
#slider-box { 
 
    height: 100%; 
 
    width: 300%; 
 
} 
 
#slider-container { 
 
    height: 250px; 
 
    margin: 0 auto; 
 
    width: 80%; 
 
    overflow: hidden; 
 
    text-align: left; 
 
} 
 
.element-1, 
 
.element-2, 
 
.element-3 { 
 
    min-height: 250px; 
 
    max-height: 70%; 
 
    width: 100%; 
 
} 
 
.element-1 { 
 
    background-color: blue; 
 
} 
 
.element-2 { 
 
    background-color: red; 
 
} 
 
.element-3 { 
 
    background-color: green; 
 
} 
 
.slider-element { 
 
    float: left; 
 
    width: 33.333% 
 
} 
 
#element1:checked ~ #slider-arrows label:nth-child(2), 
 
#element2:checked ~ #slider-arrows label:nth-child(3), 
 
#element3:checked ~ #slider-arrows label:nth-child(1) { 
 
    display: block; 
 
    float: right; 
 
} 
 
#element1:checked ~ #slider-arrows label:nth-child(3), 
 
#element2:checked ~ #slider-arrows label:nth-child(1), 
 
#element3:checked ~ #slider-arrows label:nth-child(2) { 
 
    display: block; 
 
    float: left; 
 
} 
 
#element1:checked ~ #slider-arrows label:nth-child(2):before, 
 
#element2:checked ~ #slider-arrows label:nth-child(3):before, 
 
#element3:checked ~ #slider-arrows label:nth-child(1):before { 
 
    color: black; 
 
    content: "\f054"; 
 
    line-height: 1; 
 
    font-family: FontAwesome; 
 
} 
 
#element1:checked ~ #slider-arrows label:nth-child(3):before, 
 
#element2:checked ~ #slider-arrows label:nth-child(1):before, 
 
#element3:checked ~ #slider-arrows label:nth-child(2):before { 
 
    color: black; 
 
    content: "\f053"; 
 
    line-height: 1; 
 
    font-family: FontAwesome; 
 
} 
 
#element1:checked ~ #slider-container #slider-box { 
 
    margin-left: 0; 
 
} 
 
#element2:checked ~ #slider-container #slider-box { 
 
    margin-left: -100%; 
 
} 
 
#element3:checked ~ #slider-container #slider-box { 
 
    margin-left: -200%; 
 
} 
 
#slider-arrows label { 
 
    color: transparent; 
 
    cursor: pointer; 
 
    display: none; 
 
    font-size: 2rem; 
 
    height: 20px; 
 
    width: 20px; 
 
} 
 
#slider-box { 
 
    /*chrome y safari */ 
 
    -webkit-transition: all 0.75s ease; 
 
    /*mozilla */ 
 
    -moz-transition: all 0.75s ease; 
 
    /* I explorer */ 
 
    -ms-transition: all 0.75s ease; 
 
    /*Opera*/ 
 
    -o-transition: all 0.75s ease; 
 
    transition: all 0.75s ease; 
 
}
<!-- Slider --> 
 
<section> 
 

 
    <!-- Controles --> 
 
    <input type="radio" name="slider-select-element" id="element1" checked="checked" /> 
 
    <input type="radio" name="slider-select-element" id="element2" /> 
 
    <input type="radio" name="slider-select-element" id="element3" /> 
 
    <!-- Terminan Controles --> 
 

 
    <div id="slider-container"> 
 
    <div id="slider-box"> 
 
     <div class="slider-element"> 
 
     <article class="element-1"> 
 

 
     </article> 
 
     </div> 
 
     <div class="slider-element"> 
 
     <article class="element-2"> 
 

 
     </article> 
 
     </div> 
 
     <div class="slider-element"> 
 
     <article class="element-3"> 
 

 
     </article> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 
    <div id="slider-arrows"> 
 
    <label for="element1"></label> 
 
    <label for="element2"></label> 
 
    <label for="element3"></label> 
 
    </div> 
 

 
</section>

ich zwei Lösungen gefunden habe, aber ich weiß nicht, ob sie die richtige Lösung sind.

1.-Hinzufügen zu .slider-container a margin-left: 10%.

2.-In position:relavite zu <section> und position:absolutemargin-left:10%-slider-arrow.

Was fehlt mir?

Antwort

0

Nachdem ich ein bisschen herumgespielt habe, würde ich mit Ihrem ersten Vorschlag gehen. Hier ist die fiddle.

änderte ich im Grunde nur diese Zeile:

margin: 0 auto; 

Um dies:

margin: 0 auto auto 10%; 

Dies stellt sicher, nur, dass es eine 10% ige Breite zwischen dem Schieber Behälter und der linken Seite der Seite. Wenn die Breite Ihres Schieberegisters 80% beträgt, ist es sinnvoll, dass jede Seite eine Breite von 10% hat, vorausgesetzt, sie ist zentriert. Daher wird alles gut zusammenpassen. Es ist keine Anpassung an die Position erforderlich.

Verwandte Themen