首页 > 解决方案 > 添加第 7 张幻灯片时,纯 CSS 幻灯片库出错

问题描述

当我将第七张幻灯片添加到我创建的画廊时,第一张和第七张幻灯片出现了严重问题,我无法弄清楚。基本上,当您单击缩略图时,我只需要它,它们会转到相关幻灯片。

我创建了一个 js 小提琴:

http://jsfiddle.net/mzs50pck/

代码如下:

.slider {
  max-width: 60em;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.slider input {
  display: none;
}

/*---- SLIDER STYLING----*/
.slider__slides {
  width: 100%;
  overflow: hidden;
  background: #fff;
  transition: all 300ms ease-out;
}

.slider__slides-inner {
  transition: all 500ms cubic-bezier(0.77, 0, 0.175, 1);
  width: 600%;
  line-height: 0;
}

.slider__slide-item {
  width: 16.66667%;
  float: left;
  position: relative;
}

.slider__slide-img {
  width: 100%;
}

/*---- SET POSITION FOR SLIDE ----*/
#slide1:checked ~ .slider__slides .slider__slides-inner {
  margin-left: 0%;
}

#slide2:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -100%;
}

#slide3:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -200%;
}

#slide4:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -300%;
}

#slide5:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -400%;
}

#slide6:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -500%;
}

#slide7:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -600%;
}

/*---- SET UP PREV / NEXT CONTROL ----*/
.slider__prev-next-ctrl {
  height: 40px;
  position: absolute;
  top: 42.94%;
  width: 100%;
  transform: translateY(-50%);
  pointer-events: none
}

.slider__prev-next-ctrl label {
  display: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #777;
  opacity: 0.7;
  transition: opacity 300ms ease-out;
  position: relative;
  pointer-events: auto
}

.slider__prev-next-ctrl label:hover {
  opacity: 1;
  cursor: pointer;
}

#slide1:checked ~ .slider__prev-next-ctrl label:nth-child(2), 
#slide2:checked ~ .slider__prev-next-ctrl label:nth-child(3), 
#slide3:checked ~ .slider__prev-next-ctrl label:nth-child(4), 
#slide4:checked ~ .slider__prev-next-ctrl label:nth-child(5), 
#slide5:checked ~ .slider__prev-next-ctrl label:nth-child(6),
#slide6:checked ~ .slider__prev-next-ctrl label:nth-child(7),
#slide7:checked ~ .slider__prev-next-ctrl label:nth-child(1) {
  display: block;
  float: right;
  margin-right: 6px;
  transform: rotate(-45deg);
}


#slide2:checked ~ .slider__prev-next-ctrl label:nth-child(1), 
#slide3:checked ~ .slider__prev-next-ctrl label:nth-child(2), 
#slide4:checked ~ .slider__prev-next-ctrl label:nth-child(3), 
#slide5:checked ~ .slider__prev-next-ctrl label:nth-child(4),
#slide6:checked ~ .slider__prev-next-ctrl label:nth-child(5), 
#slide7:checked ~ .slider__prev-next-ctrl label:nth-child(6),
#slide1:checked ~ .slider__prev-next-ctrl label:nth-child(7)

{
  display: block;
  float: left;
  margin-left: 6px;
  transform: rotate(135deg);
}

#slide1:checked ~ .slider__prev-next-ctrl label:nth-child(2)::after, 
#slide2:checked ~ .slider__prev-next-ctrl label:nth-child(3)::after, 
#slide3:checked ~ .slider__prev-next-ctrl label:nth-child(4)::after, 
#slide4:checked ~ .slider__prev-next-ctrl label:nth-child(5)::after, 
#slide5:checked ~ .slider__prev-next-ctrl label:nth-child(6)::after, 
#slide6:checked ~ .slider__prev-next-ctrl label:nth-child(7)::after,
#slide7:checked ~ .slider__prev-next-ctrl label:nth-child(1)::after,

#slide2:checked ~ .slider__prev-next-ctrl label:nth-child(1)::after, 
#slide3:checked ~ .slider__prev-next-ctrl label:nth-child(2)::after, 
#slide4:checked ~ .slider__prev-next-ctrl label:nth-child(3)::after, 
#slide5:checked ~ .slider__prev-next-ctrl label:nth-child(4)::after, 
#slide6:checked ~ .slider__prev-next-ctrl label:nth-child(5)::after, 
#slide7:checked ~ .slider__prev-next-ctrl label:nth-child(6)::after,
#slide1:checked ~ .slider__prev-next-ctrl label:nth-child(7)::after{
  display: block;
  position: absolute;
  top: 11px;
  left: 11px;
  width: 15px;
  height: 15px;
  content: "";
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
}

/*---- SET UP PIC THUMBNAIL CONTROL ----*/
.slider__pic-ctrl {
  text-align: center;
  margin-top: 6px
}

.slider__pic-ctrl::after {
  display: table;
  clear: both;
  content: '';
}

.slider__pic-ctrl label {
  cursor: pointer;
  display: block;
  float: left;
  width: calc(16.66667% - 5px);
  position: relative;
  border: 2px solid;
  border-color: #fff;
  transition: all .3s ease-out;
  margin-left: 3px;
  margin-right: 3px;
  position: relative;
}

.slider__pic-ctrl label.video-icon svg {
  width: 50%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  left: 50%;
}

.slider__pic-ctrl label:nth-child(1) {
  margin-left: 0
}

.slider__pic-ctrl label:nth-child(7) {
  margin-right: 0
}

.slider__pic-ctrl img {
  display: block;
}

.slider__pic-ctrl label:hover {
  border-color: #777;
}

#slide1:checked ~ .slider__pic-ctrl label:nth-child(1), 
#slide2:checked ~ .slider__pic-ctrl label:nth-child(2), 
#slide3:checked ~ .slider__pic-ctrl label:nth-child(3), 
#slide4:checked ~ .slider__pic-ctrl label:nth-child(4), 
#slide5:checked ~ .slider__pic-ctrl label:nth-child(5),
#slide6:checked ~ .slider__pic-ctrl label:nth-child(6),
#slide7:checked ~ .slider__pic-ctrl label:nth-child(7),
 {
  border-color: #777;
}

.slider__responsive-box {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 125%;
}

.slider__responsive-box iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0; 
  top: 0;
}

在第一张幻灯片上我有第一张和第七张幻灯片,在最后一张我什么都没有?

非常感谢

标签: htmlcss

解决方案


您需要更新width的值以容纳 7 个元素而不是 6 个。

内部幻灯片容器变为宽度的 700%,并且 7 个元素中的每一个变为 14.285 的宽度而不是 16.66%。

http://jsfiddle.net/mzs50pck/9/

.slider {
  max-width: 60em;
  max-width:50vh;/* demo purpose to see it on smaller résolution */
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.slider input {
  display: none;
}

/*---- SLIDER STYLING----*/
.slider__slides {
  width: 100%;
  overflow: hidden;
  background: #fff;
  transition: all 300ms ease-out;
}

.slider__slides-inner {
  transition: all 500ms cubic-bezier(0.77, 0, 0.175, 1);
  width: 700%;
  line-height: 0;
}

.slider__slide-item {
  width: 14.285%;
  float: left;
  position: relative;
}

.slider__slide-img {
  width: 100%;
}

/*---- SET POSITION FOR SLIDE ----*/
#slide1:checked ~ .slider__slides .slider__slides-inner {
  margin-left: 0%;
}

#slide2:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -100%;
}

#slide3:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -200%;
}

#slide4:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -300%;
}

#slide5:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -400%;
}

#slide6:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -500%;
}

#slide7:checked ~ .slider__slides .slider__slides-inner {
  margin-left: -600%;
}

/*---- SET UP PREV / NEXT CONTROL ----*/
.slider__prev-next-ctrl {
  height: 40px;
  position: absolute;
  top: 42.94%;
  width: 100%;
  transform: translateY(-50%);
  pointer-events: none
}

.slider__prev-next-ctrl label {
  display: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #777;
  opacity: 0.7;
  transition: opacity 300ms ease-out;
  position: relative;
  pointer-events: auto
}

.slider__prev-next-ctrl label:hover {
  opacity: 1;
  cursor: pointer;
}

#slide1:checked ~ .slider__prev-next-ctrl label:nth-child(2), 
#slide2:checked ~ .slider__prev-next-ctrl label:nth-child(3), 
#slide3:checked ~ .slider__prev-next-ctrl label:nth-child(4), 
#slide4:checked ~ .slider__prev-next-ctrl label:nth-child(5), 
#slide5:checked ~ .slider__prev-next-ctrl label:nth-child(6),
#slide6:checked ~ .slider__prev-next-ctrl label:nth-child(7),
#slide7:checked ~ .slider__prev-next-ctrl label:nth-child(1) {
  display: block;
  float: right;
  margin-right: 6px;
  transform: rotate(-45deg);
}

 
#slide2:checked ~ .slider__prev-next-ctrl label:nth-child(1), 
#slide3:checked ~ .slider__prev-next-ctrl label:nth-child(2), 
#slide4:checked ~ .slider__prev-next-ctrl label:nth-child(3), 
#slide5:checked ~ .slider__prev-next-ctrl label:nth-child(4),
#slide6:checked ~ .slider__prev-next-ctrl label:nth-child(5), 
#slide7:checked ~ .slider__prev-next-ctrl label:nth-child(6),
#slide1:checked ~ .slider__prev-next-ctrl label:nth-child(7)

{
  display: block;
  float: left;
  margin-left: 6px;
  transform: rotate(135deg);
}

#slide1:checked ~ .slider__prev-next-ctrl label:nth-child(2)::after, 
#slide2:checked ~ .slider__prev-next-ctrl label:nth-child(3)::after, 
#slide3:checked ~ .slider__prev-next-ctrl label:nth-child(4)::after, 
#slide4:checked ~ .slider__prev-next-ctrl label:nth-child(5)::after, 
#slide5:checked ~ .slider__prev-next-ctrl label:nth-child(6)::after, 
#slide6:checked ~ .slider__prev-next-ctrl label:nth-child(7)::after,
#slide7:checked ~ .slider__prev-next-ctrl label:nth-child(1)::after,

#slide2:checked ~ .slider__prev-next-ctrl label:nth-child(1)::after, 
#slide3:checked ~ .slider__prev-next-ctrl label:nth-child(2)::after, 
#slide4:checked ~ .slider__prev-next-ctrl label:nth-child(3)::after, 
#slide5:checked ~ .slider__prev-next-ctrl label:nth-child(4)::after, 
#slide6:checked ~ .slider__prev-next-ctrl label:nth-child(5)::after, 
#slide7:checked ~ .slider__prev-next-ctrl label:nth-child(6)::after,
#slide1:checked ~ .slider__prev-next-ctrl label:nth-child(7)::after{
  display: block;
  position: absolute;
  top: 11px;
  left: 11px;
  width: 15px;
  height: 15px;
  content: "";
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
}

/*---- SET UP PIC THUMBNAIL CONTROL ----*/
.slider__pic-ctrl {
  text-align: center;
  margin-top: 6px
}

.slider__pic-ctrl::after {
  display: table;
  clear: both;
  content: '';
}

.slider__pic-ctrl label {
  cursor: pointer;
  display: block;
  float: left;
  width: calc(16.66667% - 5px);
  position: relative;
  border: 2px solid;
  border-color: #fff;
  transition: all .3s ease-out;
  margin-left: 3px;
  margin-right: 3px;
  position: relative;
}

.slider__pic-ctrl label.video-icon svg {
  width: 50%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  left: 50%;
}

.slider__pic-ctrl label:nth-child(1) {
  margin-left: 0
}

.slider__pic-ctrl label:nth-child(7) {
  margin-right: 0
}

.slider__pic-ctrl img {
  display: block;
}

.slider__pic-ctrl label:hover {
  border-color: #777;
}

#slide1:checked ~ .slider__pic-ctrl label:nth-child(1), 
#slide2:checked ~ .slider__pic-ctrl label:nth-child(2), 
#slide3:checked ~ .slider__pic-ctrl label:nth-child(3), 
#slide4:checked ~ .slider__pic-ctrl label:nth-child(4), 
#slide5:checked ~ .slider__pic-ctrl label:nth-child(5),
#slide6:checked ~ .slider__pic-ctrl label:nth-child(6),
#slide7:checked ~ .slider__pic-ctrl label:nth-child(7),
 {
  border-color: #777;
}

.slider__responsive-box {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 125%;
}

.slider__responsive-box iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0; 
  top: 0;
}
<div class="slider">
  <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" />
  <input type=radio name="slider" id="slide6" />
  <input type=radio name="slider" id="slide7" />

  <div class="slider__slides">
    <div class="slider__slides-inner">
      
      <div class="slider__slide-item">
        <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_01.jpg" />
      </div>

      <div class="slider__slide-item">
        <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_02.jpg" />
      </div>

      <div class="slider__slide-item">
        <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_03.jpg" />
      </div>

      <div class="slider__slide-item">
        <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_04.jpg" />
      </div>

       <div class="slider__slide-item">
        <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_05.jpg" />
      </div>

      <div class="slider__slide-item">
        <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_06.jpg" />
      </div>

       <div class="slider__slide-item">
        <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_07.jpg" />
      </div>

      
    </div>
  </div>

  <div class="slider__pic-ctrl">
    <label for=slide1>
      <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_01.jpg" />
    </label>
    <label for=slide2>
      <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_02.jpg" />
    </label>
    <label for=slide3>
      <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_03.jpg" />
    </label>
    <label for=slide4>
      <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_04.jpg" />
    </label>
    <label for=slide5>
      <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_05.jpg" />
    </label>
    <label for=slide6>
      <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_06.jpg" />
    </label>
    <label for=slide7>
      <img class="slider__slide-img" src="https://s3-eu-west-1.amazonaws.com/realbuzzregistrations/rr3/lmel/Backpack_07.jpg" />
    </label>
 
  </div>

  <div class="slider__prev-next-ctrl">
    <label for=slide1></label>
    <label for=slide2></label>
    <label for=slide3></label>
    <label for=slide4></label>
    <label for=slide5></label>
    <label for=slide6></label>
    <label for=slide7></label>
  </div>

</div>


推荐阅读