CSS,图像滑块高度与响应式设计中的叠加点放置问题
CSS, image slider height with overlaying dots placement issue on responsive design
可能忽略了一些简单的事情,但问题是浏览器 window 宽度很小。重叠点未正确放置(图像底部)。
注意:如果从 HTML LI 中删除 "HEIGHT" 属性,则不会显示图像。
玩height:auto;在 HTML/CSS 中有相同的结果。最大高度具有相同的效果。
我想删除硬编码的 HTML 样式高度,让点始终出现在图像底部,无论大小如何。
小提琴:http://jsfiddle.net/s3r8uuzz/
JavaScript 文件:
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//unslider.com/unslider.min.js" type="text/javascript"></script>
CSS:
.banner ul {
list-style: none; /* Lose the dot */
margin:0px;
padding:0px;
}
.banner li {
float: left;
background-size: 100% auto;
background-repeat: no-repeat;
}
.dots {
position: absolute;
left: 0;
right: 0;
text-align: center;
bottom: 0px;
background-color: #353535;
height: 35px;
opacity: .7;
}
.dots li {
position:relative;
top:11px;
left:-4px;
display: inline-block;
width: 10px;
height: 10px;
margin-left: 4px;
text-indent: -999em;
border: 2px solid #bc9a6a;
background-color: white;
border-radius: 6px;
cursor: pointer;
-webkit-transition: background .5s, opacity .5s;
-moz-transition: background .5s, opacity .5s;
transition: background .5s, opacity .5s;
}
.dots li.active {
background: #3e245b;
opacity: 1; /* opacity of the inside dot (not the border) */
}
#slider{
position: relative;
}
HTML:
<div id="slider" style="">
<div class="banner">
<ul>
<li style="background-image: url(http://cdn.nliphonedwwwghan.savviihq.com/wp-content/uploads/2013/12/500px1-580x375.jpg); height:350px;"><a href="/testing"></a></li>
<li style="background-image: url(http://cdn.nliphonedwwwghan.savviihq.com/wp-content/uploads/2013/12/500px1-580x375.jpg); height:350px;"><a href="testing"></a></li>
</ul>
</div>
</div>
<div>
No matter the window size, this text should be directly under the image.
</div>
<script>
// main image settings
$('.banner').unslider({
arrows: false,
delay: 2000,
fluid: true,
speed: 1000,
dots: true
});
</script>
您正在使用 position:absolute 作为点,要将它们正确定位在其父级而不是页面主体中,您需要提供滑块容器,该容器当前的 ID 为 'slider',相对定位.
#slider { position: relative; }
这将包含点在其父容器中的绝对定位。
可能忽略了一些简单的事情,但问题是浏览器 window 宽度很小。重叠点未正确放置(图像底部)。
注意:如果从 HTML LI 中删除 "HEIGHT" 属性,则不会显示图像。 玩height:auto;在 HTML/CSS 中有相同的结果。最大高度具有相同的效果。
我想删除硬编码的 HTML 样式高度,让点始终出现在图像底部,无论大小如何。
小提琴:http://jsfiddle.net/s3r8uuzz/
JavaScript 文件:
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//unslider.com/unslider.min.js" type="text/javascript"></script>
CSS:
.banner ul {
list-style: none; /* Lose the dot */
margin:0px;
padding:0px;
}
.banner li {
float: left;
background-size: 100% auto;
background-repeat: no-repeat;
}
.dots {
position: absolute;
left: 0;
right: 0;
text-align: center;
bottom: 0px;
background-color: #353535;
height: 35px;
opacity: .7;
}
.dots li {
position:relative;
top:11px;
left:-4px;
display: inline-block;
width: 10px;
height: 10px;
margin-left: 4px;
text-indent: -999em;
border: 2px solid #bc9a6a;
background-color: white;
border-radius: 6px;
cursor: pointer;
-webkit-transition: background .5s, opacity .5s;
-moz-transition: background .5s, opacity .5s;
transition: background .5s, opacity .5s;
}
.dots li.active {
background: #3e245b;
opacity: 1; /* opacity of the inside dot (not the border) */
}
#slider{
position: relative;
}
HTML:
<div id="slider" style="">
<div class="banner">
<ul>
<li style="background-image: url(http://cdn.nliphonedwwwghan.savviihq.com/wp-content/uploads/2013/12/500px1-580x375.jpg); height:350px;"><a href="/testing"></a></li>
<li style="background-image: url(http://cdn.nliphonedwwwghan.savviihq.com/wp-content/uploads/2013/12/500px1-580x375.jpg); height:350px;"><a href="testing"></a></li>
</ul>
</div>
</div>
<div>
No matter the window size, this text should be directly under the image.
</div>
<script>
// main image settings
$('.banner').unslider({
arrows: false,
delay: 2000,
fluid: true,
speed: 1000,
dots: true
});
</script>
您正在使用 position:absolute 作为点,要将它们正确定位在其父级而不是页面主体中,您需要提供滑块容器,该容器当前的 ID 为 'slider',相对定位.
#slider { position: relative; }
这将包含点在其父容器中的绝对定位。