【发布时间】:2021-01-07 21:49:00
【问题描述】:
因此,在这种情况下,根据设计,我需要做一些具有凹面或凸面的元素,由复杂的border-radius 实现。现在,因为border-radius 最终创建了元素的椭圆或半个椭圆,以实现最终的外观,看起来像这样......
...我必须创建一个更宽的容器来容纳整个圆角元素,但只显示其中的一部分。
我基本上做的是有一个带有overflow: hidden (#main-slider) 的主容器,我在其中创建了一个具有width: 130%; 的元素(#main-slider-holder),并且向左移动了15% margin-left: -15% 以及有border-radius 类.bottomcucurve。它还有padding: 0 15%;,这样它的子元素就可以在里面居中了。
最后我在里面有#slider 元素,这就是内容所在的地方。幻灯片有一个特定的高度,它们决定了滑块的高度。
一切正常,除了我在 iPhone(Safari 和 Chrome)或 Mac Safari 上打开它时。 Mac Firefox 和 Chrome 可以正常工作,但 Safari 不能。
问题在于它基本上确实在静态元素上显示了复杂的边框半径,但特别是在 owlCarousel 实例的元素上,它只是决定忽略它和父容器的overflow: hidden,只显示完整的元素。
基本上是这样的:
您可以看到下面的弯曲部分,但幻灯片的内容没有得到应有的剪辑。
我的结构如下。你可以在here看到它。
#main-slider {
position: relative;
width: 100%;
max-width: 120rem;
margin: 0 auto;
overflow: hidden;
z-index: 4;
}
#main-slider-holder {
height: 100%;
background: #248942;
width: 130%;
margin-left: -15%;
padding: 0 15%;
overflow: hidden;
}
#main-slider .slide {
height: 17.5rem;
}
.bottomcurve {
border-bottom-left-radius: 59.5% 8.75rem;
border-bottom-right-radius: 59.5% 8.75rem;
}
<div id="main-slider">
<div id="main-slider-holder" class="bottomcurve">
<div id="slider">
<div class="slide">Slide 1</div>
<div class="slide">Slide 2</div>
<div class="slide">Slide 3</div>
</div>
</div>
</div>
我在这里缺少什么吗?我应该如何解决这个问题?
【问题讨论】:
标签: html css safari mobile-safari owl-carousel