Swiper滑块 - 为不同尺寸的屏幕设置响应式图像

时间:2016-12-22 13:47:55

标签: javascript html css swiper ion-slides

我有一个ionic app,我使用了使用滑动滑块的ion-slides指令作为图像滑块。这就是它在视图中的样子:

<ion-slides ng-if="slider.length > 0 && article.external_media.length < 1" class="slides">
  <ion-slide-page ng-repeat="item in slider">
    <img ng-if="item.image" ng-src="{{ fileServer }}/imagecache/cover/{{ item.image }}" class="cover">
    </ion-slide-page>
</ion-slides>

这就是它的CSS:

.slider {    
  &:after {
    content: "";
    display: block;
    position: absolute;
    width: 200%;
    height: 100%;
    box-shadow: 0px 1.5rem 4.8rem 3rem rgba(0, 0, 0, 0.4) inset;
    bottom: 5px;
    left: -50%;
  }
}

.cover {
  width:100%;
  position: relative;

  &:after {
    content: "";
    display: block;
    position: absolute;
    width: 200%;
    height: 100%;
    box-shadow: 0px -5rem 4.8rem 3rem rgba(0, 0, 0, 0.4) inset;
    bottom: 5px;
    left: -50%;
  }
}

.slides {
  height: 325px;
}

问题是如果不给slides课程任何高度或将其设置为100%auto,则图片不可见,因为未设置高度。当我确定slides的设定高度时,他们不会正确调整大小,因为设置了高度,图像会在较大的屏幕上水平拉伸。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

默认情况下,Swiper将swiper-wrapper position设置为absolute。我已将其覆盖到position: relative;,然后我就可以将slides height设置为auto。所以,这是对我有用的最终解决方案:

.slides {
  height: auto;
}

.swiper-wrapper {
  position: relative;
}