我遇到了flexslider的问题,当我使用“垂直”幻灯片过渡时幻灯片的间距不均匀。
例如,第一张幻灯片开始时看起来就像它上面有~20px的填充,从底部撞出大约一半的标题。每个新幻灯片都会解决问题,直到滑块重置为止。这只发生在我使用“垂直”过渡时。
在flexslider documentation中,它显示为:
垂直幻灯片动画不具有与水平动画相同的有机尺寸,并且幻灯片必须具有相同的高度。如果您在使用垂直方向时有不同高度的幻灯片,幻灯片的空间将不正确。
但是,我的每张幻灯片的高度/宽度完全相同。
以下是基本的HTML代码:
<div class="flexslider">
<ul class="slides">
<li>
<img src="myimage" />
<h1>Title 1</h1>
</li>
<li>
<img src="myimage2" />
<h1>Title 2</h1>
</li>
<li>
<img src="myimage3" />
<h1>Title 3</h1>
</li>
</ul>
</div>
以下是相关的CSS:
/* Browser Resets */
.flex-container a:active,
.flexslider a:active,
.flex-container a:focus,
.flexslider a:focus {outline: none;}
.slides,
.flex-control-nav,
.flex-direction-nav {margin: 0; padding: 0; list-style: none;}
/* FlexSlider Necessary Styles
*********************************/
.flexslider {margin: 0; padding: 0;}
.flexslider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */
.flexslider .slides img {width: 100%; display: block;}
.flex-pauseplay span {text-transform: capitalize;}
/* Clearfix for the .slides element */
.slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;}
html[xmlns] .slides {display: block;}
* html .slides {height: 1%;}
/* No JavaScript Fallback */
/* If you are not using another script, such as Modernizr, make sure you
* include js that eliminates this class on page load */
.no-js .slides > li:first-child {display: block;}
/* FlexSlider Default Theme
*********************************/
.flexslider {margin: 0 0 60px; background: #fff; border: 4px solid #fff; position: relative; -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.2); -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.2); -moz-box-shadow: 0 1px 4px rgba(0,0,0,.2); -o-box-shadow: 0 1px 4px rgba(0,0,0,.2); zoom: 1;}
.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;}
.loading .flex-viewport {max-height: 300px;}
.flexslider .slides {zoom: 1;}
.carousel li {margin-right: 5px}
我做了一个jsFiddle,你可以在那里看到幻灯片的位置。我已经尝试调整并调整边距。我正处于需要帮助的地步,因为我认为它与Flexslider脚本正在注入的内联CSS有关。
提前感谢任何可以提供帮助的人!
更新:找到修复程序。 H1
标记上有浏览器默认边距。简单解决下面的答案。
答案 0 :(得分:2)
经过多次试验和错误,我发现问题是<H1>
标记。浏览器正在应用默认边距,这使得幻灯片比检测到的flexslider脚本更大。
修复很简单。只需添加:
.slides li h1 {margin:0; padding: 0;}
在修复已应用的情况下查看新的fiddle。
希望这有助于其他人。