-1

我在 4-5 年前问过这个问题。现在,格式化它,这样我就不会再次被阻止。

我想用 css 但没有 javascript 创建一个 HTML Slider。

这是我的尝试,我该如何改进? https://codepen.io/fearless23/pen/GELXma

HTML

<div class="slides-container">

  <div>
    <input id="slide1" type="radio" name="login-slide" class="hidden" checked>
    <div class="slide">Slide1</div>
    <label for="slide1" class="slide-dot"></label>
  </div>

  <div>
    <input id="slide2" type="radio" name="login-slide" class="hidden">
    <div class="slide">Slide2 </div>
    <label for="slide2" class="slide-dot" style="left: 12.52em;"></label>
  </div>

  <div>
    <input id="slide3" type="radio" name="login-slide" class="hidden">
    <div class="slide">Slide3 </div>
    <label for="slide3" class="slide-dot" style="left:14.52em;"></label>
  </div>

</div>

CSS

*, *:after, *:before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.slides-container {
  position: relative;
  display: flex;
  width: 100%;
  height: 100vh;
}

.slide {
  position: absolute;
  visibility: hidden;
  opacity: 0;
  width: 100%;
  height: 100%;
  padding: 2em 2em 5em;
  color: white;
  background: black;
}

.slides-container input[type="radio"]:checked + .slide {
  visibility: visible;
  opacity: 1;
}

.hidden {
  position: absolute;
  opacity: 0;
  hieght: 0;
  overflow: hidden;
}
label.slide-dot {
  position: absolute;
  z-index: 100;
  bottom: 2em;
  left: 10.52em;
  width: 1em;
  height: 1em;
  background: #fff;
  border-radius: 50%;
  cursor: pointer;
}

.slides-container input[type="radio"]:checked ~ label {
  background: #2ca58d;
}
4

1 回答 1

1

您应该真正阅读如何使用 HTML 和 CSS。我建议阅读w3schools.com上关于htmlcss的解释。在这种情况下,您想了解的主要是列表和链接(html-wise)以及您可以使用边框(css-wise)做的有趣的事情。例如,为了制作 css 圆圈,David Walsh 有一个不错的 blog-entry

我也必须同意李斯特先生的观点,你的两点确实是不同的问题。事实上,它们是不同的技术:第一个是 HTML/CSS 问题,后者是 javascript 问题。

一个友好的建议:不要从一开始就想要一切。这会让人沮丧(我知道!)。让自己熟悉 HTML 的工作方式,尤其是交叉链接页面和内容。一旦掌握了窍门,就可以尝试使用 javascript(恕我直言,jQuery 非常易于访问,例如:导致结果快速)。提示:您想试验display: noneCSS 属性和div#id.show()jQuery 的功能。

祝你好运,玩得开心(这就是一切的意义所在)!

于 2013-08-24T15:14:08.727 回答