在此示例中,http://bit.ly/t2ImYS所有元素的包装宽度都是固定的8520px
#scroller {
width: 8520px;
height: 100%;
float: left;
padding: 0;}
我想要width
动态,所以如果我在<div id="scroller">
中添加更多元素,这个#scroller应该取其内部元素的宽度。
所以试图设置宽度
#scroller {
width: 100%;}
和
#scroller {
width: auto}
但滚动条无法正常工作。
是否可以通过正常工作滚动来width
%
?
答案 0 :(得分:11)
将li元素设置为display:inline-block;并删除浮动:左; (您也可以删除vertical-align,因为这只适用于table-cell元素)
从包装中删除固定宽度。
添加空白区域:nowrap;到ul
你应该没事......
(除了&lt; = ie7,但我认为你的情况没问题?)
#scroller li {
display: inline-block;/* changed */
/*float:left; */ /* deleted */
padding: 0 10px;
width: 120px;
height: 100%;
border-left: 1px solid #CCC;
border-right: 1px solid white;
background-color: #FAFAFA;
font-size: 14px;
}
#scroller ul {
list-style: none;
display: block;
float: left;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
text-align: left;
white-space:nowrap; /* added */
}
#scroller {
/* width: 8520px; */ /* deleted */
height: 100%;
float: left;
padding: 0;
}
答案 1 :(得分:2)
如果您使用的是iScroll4,则应刷新滚动条或销毁并重新创建它。
摘自here: “iScroll需要知道包装器和滚动器的正确尺寸。它们是在启动时第一次计算的,但是如果你的代码改变了元素大小,则需要警告iScroll你正在弄乱DOM。”
答案 2 :(得分:2)
使用Display:inline-block 并使用百分比为我工作:
#scroller li {
height: 100%;
width: 2%;
display: inline-block;
}
#scroller ul {
list-style: none;
display: block;
float: left;
width: 100%;
height: 100%;
}
#scroller {
width: 5000%;
height: 100%;
float: left;
}
答案 3 :(得分:1)
在滚动条中添加动态项目后,尝试调用iscroll refresh()
方法来设置宽度。
答案 4 :(得分:0)
试试这个css代码,它对我有用:http://jsfiddle.net/manseuk/r9VL2/2/
#wrapper {
z-index:1;
width:100%;
background:#aaa;
overflow:auto;
}
#scroller {
z-index:1;
/* -webkit-touch-callout:none;*/
-webkit-tap-highlight-color:rgba(0,0,0,0);
width:100%;
padding:0;
}
#scroller ul {
list-style:none;
padding:0;
margin:0;
width:100%;
text-align:left;
}
#scroller li
{
background-color: White !important;
padding:0 10px;
height:40px;
line-height:40px;
border-bottom:1px solid #ccc;
border-top:1px solid #fff;
background-color:#fafafa;
font-size:14px;
}