叠加的 div 之间的间距,不影响宽度

Spacing between superposed divs, without affecting width

我最近一直在尝试制作 div 幻灯片,使用名为 Owl-Carousel 的脚本,其中 div 每个 spaced 10 px,因此拖动看起来不错。

为了展示目的,我制作了整个代码: http://codepen.io/anon/pen/VLZmWd

我尝试修改页边距但没有成功。

CSS如下:

.generic { // header on top of slide, must have wrapper width
  background-color:red;
  height: 30px;
  text-align:center;
}

.item { // item (slide) inside the owl carousel, must have wrapper width
  height: 300px;
  background-color: #7FFFD4;
  //margin-right:10px; // gives the spacing between slides, but works so bad
}

#wrapper { // wraps carousel and elements with generic class
  margin:0px auto;
  width:720px;
  height: auto;
}

我怎样才能 space 在彼此之间滑动 10px,同时保持 red/green 区域相同的宽度和 .generic class 不变。

我希望 class ".generic" 不变的原因主要是我整理代码的方式,因此 CSS 很容易修改宽度:我有许多不同的 classes/elements 应该采用包装宽度,我希望不必为它们中的每一个设置宽度或设置边距,以实现代码可管理性。

编辑:为了清楚起见,当在旋转木马上使用鼠标拖动时,我的 objective 是在每张幻灯片绿色幻灯片之间看到 10px 的白色(在 codepen 中不是这种情况),同时保持绿色区域宽度与红色区域宽度相同。

谢谢

您可以为您的 meow 应用边距并在它们周围添加一个容器,这使得它们小于容器的总大小,从而增加边距。 http://codepen.io/anon/pen/aOopOK

如果您不想更改 HTML,您也可以使用 box-sizing 来达到同样的效果。 http://codepen.io/anon/pen/QbLdbG

但是,我建议您自己开发此功能,不要使用 owl-carousel,尤其是如果您只是在学习 JS。这不是一个特别复杂的概念,尽管肯定超出了 Whosebug 答案的范围。

嗯...我想这就是你想要的:

http://codepen.io/anon/pen/QbLdpv

$(document).ready(function() {
  $("#owl-demo").owlCarousel({

      navigation : true, // Show next and prev buttons
      slideSpeed : 300,
      paginationSpeed : 400,
      singleItem:true,
    afterMove: function (elem) {

      var index = this.owl.currentItem;

     $('.owl-wrapper').css('margin-left',-10*(index)+'px')
    }

 });
});

要获得所需的行为,您必须移动容器 (.owl-wrapper) - 默认位置始终是 left:0,但是,因为我们想要边框 - 我们必须相应地移动它。在 CSS(如果我没记错的话:)),我刚刚添加了:

.owl-item {
   border-right:10px solid white; 


}

EDIT2:margin-left,而不是 left,现在应该适用于所有(现代)浏览器。 :)