CSS-替代使用(〜)兄弟运算符

时间:2018-10-01 19:52:08

标签: html css html5 css3

我有一个可以与HTML和CSS代码完美配合的滑块,但是,当我想导入到我的电子邮件管理包中时,将不允许使用tilda。

基于以下代码,我只是想知道,是否有替代方法可以通过CSS定位代码,而不是使用CSS兄弟运算符,以便我可以测试是否可以将新的调整后的代码导入平台。 / p>

感谢您的帮助。下面的代码:

body {
  margin: 0;
  padding: 0;
}

.container {
  display: flex;
  width: 600px;
  flex-wrap: wrap;
  justify-content: space-between;
}

.slider-holder {
  order: -1;
  width: 600px;
  height: 280px;
  background-color: yellow;
  text-align: center;
  overflow: hidden;
}

.image-holder {
  width: 3000px;
  background-color: red;
  height: 280px;
  clear: both;
  position: relative;
  transition: left 7000s;
  /*Use a big value to block the image change*/
  left: 0;
}

.slider-image {
  float: left;
  margin: 0px;
  padding: 0px;
  position: relative;
}

a[href="#slider-image-0"]:hover~.slider-holder .image-holder {
  left: 0.5px;
  /*Yes it's not 0px here, we need something different from the initial state to be able to trigger the transition (Yes I know it's not intuitive ..)*/
  transition: left 1s;
}

a[href="#slider-image-1"]:hover~.slider-holder .image-holder {
  left: -600px;
  transition: left 1s;
}

a[href="#slider-image-2"]:hover~.slider-holder .image-holder {
  left: -1200px;
  transition: left 1s;
}

a[href="#slider-image-3"]:hover~.slider-holder .image-holder {
  left: -1800px;
  transition: left 1s;
}

a[href="#slider-image-4"]:hover~.slider-holder .image-holder {
  left: -2400px;
  transition: left 1s;
}

.button-holder>a>img {
  padding-left: 35px;
  padding-right: 35px;
}
<div class="container">
  <a href="#slider-image-0"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <a href="#slider-image-1"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <a href="#slider-image-2"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <a href="#slider-image-3"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <a href="#slider-image-4"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <div class="slider-holder">
    <div class="image-holder">
      <img src="https://via.placeholder.com/600x280/ff0000" class="slider-image" />
      <img src="https://via.placeholder.com/600x280/00ff00" class="slider-image" />
      <img src="https://via.placeholder.com/600x280/f0f0f0" class="slider-image" />
      <img src="https://via.placeholder.com/600x280/0000ff" class="slider-image" />
      <img src="https://via.placeholder.com/600x280" class="slider-image" />
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:1)

您可以使用运算符+来接受下一个元素。请注意,要使其正常工作,您必须链接多个元素才能到达滑块

body {
  margin: 0;
  padding: 0;
}

.container {
  display: flex;
  width: 600px;
  flex-wrap: wrap;
  justify-content: space-between;
}

.slider-holder {
  order: -1;
  width: 600px;
  height: 280px;
  background-color: yellow;
  text-align: center;
  overflow: hidden;
}

.image-holder {
  width: 3000px;
  background-color: red;
  height: 280px;
  clear: both;
  position: relative;
  transition: left 7000s;
  /*Use a big value to block the image change*/
  left: 0;
}

.slider-image {
  float: left;
  margin: 0px;
  padding: 0px;
  position: relative;
}

a[href="#slider-image-0"]:hover + .slider-holder .image-holder {
  left: 0.5px;
  /*Yes it's not 0px here, we need something different from the initial state to be able to trigger the transition (Yes I know it's not intuitive ..)*/
  transition: left 1s;
}

a[href="#slider-image-1"]:hover + a + a + a + .slider-holder .image-holder {
  left: -600px;
  transition: left 1s;
}

a[href="#slider-image-2"]:hover + a + a +.slider-holder .image-holder {
  left: -1200px;
  transition: left 1s;
}

a[href="#slider-image-3"]:hover + a + .slider-holder .image-holder {
  left: -1800px;
  transition: left 1s;
}

a[href="#slider-image-4"]:hover + .slider-holder .image-holder {
  left: -2400px;
  transition: left 1s;
}

.button-holder>a>img {
  padding-left: 35px;
  padding-right: 35px;
}
<div class="container">
  <a href="#slider-image-0"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <a href="#slider-image-1"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <a href="#slider-image-2"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <a href="#slider-image-3"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <a href="#slider-image-4"><img src="https://via.placeholder.com/70x70" alt="" width="70" style="border-width:0 !important;outline-style:none !important;"></a>
  <div class="slider-holder">
    <div class="image-holder">
      <img src="https://via.placeholder.com/600x280/ff0000" class="slider-image" />
      <img src="https://via.placeholder.com/600x280/00ff00" class="slider-image" />
      <img src="https://via.placeholder.com/600x280/f0f0f0" class="slider-image" />
      <img src="https://via.placeholder.com/600x280/0000ff" class="slider-image" />
      <img src="https://via.placeholder.com/600x280" class="slider-image" />
    </div>
  </div>
</div>