【发布时间】:2010-03-10 04:08:34
【问题描述】:
我有一个外部 div,在其中,我有一个包含图像列表的内部 div。当图像比外部 div 宽时,我想让它水平滚动,但它只是将图像放在下一行而不是展开。如果我添加很多行,div 会垂直滚动,但水平滚动,它不会滚动。这发生在我尝试过的所有浏览器上 - Firefox、Chrome、IE 和 Safari。
这是css:
#grid-container { left:33px; position:relative; width:300px; }
#grid { width:310px; height:400px; overflow:auto; margin-bottom: 15px; }
#grid-container ul { width:305px; }
#grid-container li { float:left; list-style-type:none; padding:5px 15px 5px 15px; height:88px; text-align:center; }
.image-row { float:left; margin-left: 10px; }
.grid-image { height:50px; margin-left:-20px; }
这里是html:
<div id="grid-container">
<div id="grid">
<div id="row1" class="image-row">
<ul>
<li>
<img id="img1" class="grid-image" src="images/img1.jpg">
</li>
<li>
<img id="img2" class="grid-image" src="images/img2.jpg">
</li>
<li>
<img id="img3" class="grid-image" src="images/img3.jpg">
</li>
<li>
<img id="img4" class="grid-image" src="images/img4.jpg">
</li>
</ul>
</div>
<div id="row2" class="image-row">
<ul>
<li>
<img id="img5" class="grid-image" src="images/img5.jpg">
</li>
<li>
<img id="img6" class="grid-image" src="images/img6.jpg">
</li>
</ul>
</div>
</div>
</div>
问题是 img4 显示在第二行(img5 和 img5 在第三行),即使它应该在第一行并且 grid div 应该水平滚动。它确实垂直滚动。我可以强制 div 扩展吗?如果我从网格 div 中删除宽度,我会得到水平滚动条,但图像仍在第二行。
【问题讨论】:
-
使用有效标记会更容易查看。您缺少打开
- 标记,并且无效注释样式信息无济于事。包括您正在使用的有效 CSS 声明,以便有人可以实际测试此标记而无需重写它。顺便说一句——我确实尝试过对此进行测试,它实际上在 FF 中似乎可以正常工作,所以你的真实页面上可能还有其他问题或样式冲突。
-
@bmoeskau - 我用 css 更新了帖子。当你在 FF 上测试时,div 确实水平滚动并在一行中显示图像?