html - CSS Slider 不断崩溃

标签 html css

我正在尝试仅使用 HTML 和 CSS 构建此 slider 。我想知道我做错了什么,没有让它像任何普通 slider 一样显示。图像在那里,但它们占据了整个页面(并且它们堆叠)但它过渡得很好:

@keyframes slider {
  0% {
    left: 0;
  }

  20% {
    left: 0;
  }

  25% {
    left: -100%;
  }

  45% {
    left: -100%;
  }

  50% {
    left: -200%;
  }

  70%{
    left: -200%;
  }

  75% {
    left: -300%;
  }
  95% {
    left: -300%;
  }

  100% {
    left: -400%;
  }
}
.slider{
  overflow: hidden;
  max-width: 100%
}

.slider figure img{
  float: left;
  width: 20%;
}

.slider figure{
  position: relative;
  width: 500%;
  margin: 0;
  animation: 20s slider infinite;
}
<div class="slider">
  <figure>
    <img src="images/JonathanJoestar.jpg">
    <img src="images/JosephJoestar.jpg">
    <img src="images/JotaroKujo 3.jpg">
    <img src="images/JosukeHigashikata.jpg">
    <img src="images/GiornoGiovanna.jpg">
    <img src="images/JolyneCujoh.jpg">
    <img src="images/JonnyJoestar.jpg">
    <img src="images/JosukeHigashikata(8).jpg">
  </figure>
</div>

我该怎么做?

最佳答案

您的一些 img 由于溢出而换行。

figure 的宽度为 500%,每个 img 的宽度为 20%,因此每个 img 的宽度为 100% (20/100 * 500%),这意味着一个 figure 在开始包装其内容之前只能有 5 个 img

我创建 fiddle基于您的代码(由于高度不同,包装可能有点奇怪)。如果您将 figureimg 的宽度更改为 1000% 和 10%(现在 figure 可以有 10 个 imgs) 它应该可以工作。

如果你不想处理这个烂摊子。我建议您使用 Flexbox。

.slider figure img {
  width: 100%;
}

.slider figure {
  position: relative;
  display: flex;
  align-items: flex-start;
  margin: 0;
  animation: 20s slider infinite;
}

完整示例 here .

关于html - CSS Slider 不断崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49215811/

相关文章:

html - Internet Explorer 版本(9.0 除外)关于 CSS3 阴影和列表属性的问题

javascript - js/jquery : How to randomize images

javascript - 使用自定义 Chrome 关闭

jquery - css clear floats with multiple divs

javascript - 使用 JavaScript 代码在 Safari 上不显示背景图像

javascript - 如何将内部 div 居中?

jquery - 在页面加载时打开显示模型不起作用

html - 我的 img 去哪儿了?

css - IE7 z-index 和堆叠

html - `inline-block` 表现得像 `block`