html - 在相对定位元素(无 flex 盒)之前/之后对齐移动方向元素(上一个/下一个)

标签 html css

我正在处理多元素轮播,我需要对齐 2 个元素,前一个,下一个 - 之前,之后是相对位置的容器;

我需要:

  • Previous 在 items 之前中间垂直对齐
  • items 之后居中垂直对齐
  • 对于Next,Previous我想最后用一个图标字体

items 使用javascript会左右移动,所以他需要相对定位

我尝试在元素上使用 display:inline-block,但没有按预期工作; !对于 item-container 类,可以使用 float 代替 display: inline-block。 我不能使用 flexbox,因为我需要支持旧版浏览器。

.carousel {
  width: 500px;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
}

.c-carousel__previous,
.c-carousel__next {
  display: inline-block;
}

.items {
  top: 0px;
  left: 0;
  position: relative;
  display: inline-block;
}

.item-container {
  width: 16.66667%;
  display: inline-block;
}
<div class="carousel">
  <div class="previous">
    previous
  </div>
  <div class="items">
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
  </div>
  <div class="next">
    next
  </div>
</div>

最佳答案

试试这个

.carousel {
  width: 500px;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
}

.previous,
.next {
  display: inline-block;
  vertical-align: middle;
  width: 25px;
}

.items {
  top: 0px;
  left: 0;
  position: relative;
  display: inline-block;
  vertical-align: middle;  
  width: 450px;
  overflow: hidden;
}

.item-container {
  width: 16.66667%;
  display: inline-block;
}
<div class="carousel">
  <div class="previous">
    previous
  </div>
  <div class="items">
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
    <div class="item-container">
      <a href="">
        <img src="http://via.placeholder.com/50x50">
      </a>
    </div>
  </div>
  <div class="next">
    next
  </div>
</div>

请相应地调整宽度

关于html - 在相对定位元素(无 flex 盒)之前/之后对齐移动方向元素(上一个/下一个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50480576/

相关文章:

具有最大高度的 CSS 布局效果不佳

javascript - 使 sap.m.CustomTile 可根据分辨率调整大小,例如从 500px 到 320px

html - iPhone 上的 Div 宽度和问题

javascript - 以编程方式设置按钮文本

html - 如何根据背景图像大小自动调整 div 的大小?

html - 用户界面 : Multiple choice select boxes

javascript - 如何处理使用:hover and :focus for clickable top-level links?的触摸屏设备上的多级菜单

html - 如何使横幅居中并保持边距?

html - 并排放置2个div

html - 如何制作全屏图像网格?