【问题标题】:CSS inline gallery / max-width: 100% = Scrollbar does not appearCSS inline gallery / max-width: 100% = 滚动条不出现
【发布时间】:2013-03-19 16:10:37
【问题描述】:

我正在尝试创建一个 CSS 内联库。

HTML

<div id="wrapper">
    <ul>
        <li><img src="http://placehold.it/500x50" alt="" /></li>
        <li><img src="http://placehold.it/500x50" alt="" /></li>
        <li><img src="http://placehold.it/500x50" alt="" /></li>
        <li><img src="http://placehold.it/500x50" alt="" /></li>
        <li><img src="http://placehold.it/500x50" alt="" /></li>
    </ul>
</div>

CSS

* {
  margin: 0;
  padding: 0;
}

img {
  max-width: 100%;
  border: 0;
  -ms-interpolation-mode: bicubic;
  width: auto\9;
  height: auto;
}

html,
body {
    width: 100%;
    height: 100%;
}

#wrapper {
    width: 100%;
    background: grey;
    text-align: center;
    overflow: scroll;
}

ul {
    display: table;
    width: 100%;
    height: 50px;
    overflow: hidden;
}

li {
    display: table-cell;
    width: 100%;
}

Fiddle

我面临的问题是它不起作用(d'oh)。想法是将#wrapper 设置为width: 100%;,然后将图像水平对齐在#wrapper 内的一行中。要在图像之间导航,可以使用水平滚动条。

但是如你所见,没有出现滚动条,溢出只是被隐藏了。
在调试时,我发现img 元素上的以下规则会导致问题:max-width: 100%;。如果您删除它,滚动条会出现,但图像不再居中。

由于它是一个响应式网站,我也不能简单地删除 max-width: 100%;。所以基本上,我被卡住了,不知道该怎么做。我什至不知道为什么max-width: 100%; 搞砸了滚动。

你能帮帮我吗?

编辑:所以在 Safari 6.0.2 中,没有出现滚动条,但在 Firefox 19.0.2 中一切似乎都很好。对我来说,事情变得越来越陌生。

【问题讨论】:

  • 我看到了水平滚动条:|
  • @AndreaLigios 感谢您的评论。我刚刚在 Firefox 19.0.2 中检查了 Fiddle,确实,那里一切都很好,但在 Safari 6.0.2 中却没有。
  • 我认为问题仅出在 Safari 中。 Chrome 和 FF 适合我。
  • 在 Safari 中,我看到滚动条被禁用,因为它只显示一个图像。
  • 由于是 Safari 问题,您可能需要查看 stackoverflow.com/questions/8946869/force-scrollbar-on-safari

标签: html css safari slider gallery


【解决方案1】:

问题不在于野生动物园,这是一个可行的解决方案:

http://jsfiddle.net/6fjV9/2/

#wrapper {
    width: 100%;
    background: grey;
    overflow: scroll;
}

ul {
    display: table;
    width: 2500px;
    height: 50px;
    table-layout: fixed;
}

li {
    display: table-cell;
    vertical-align: top;
}

img {
    display: block;
}

您将列表的宽度设置为其父级的 100%,它只占用视口大小,因为它自己的宽度也是 100%。该列表必须具有一行中所有子项的宽度,例如5 * 500 = 2500。虽然 FF 似乎只是根据其内容调整“表格”的大小(也许table-layout: fixed; 是这里的一个重要样式属性),但 safari 将其大小保持为 100%,不会导致滚动条,因为它与其父级一样宽。

更新:或者根本不使用 display: table 设置宽度。 http://jsfiddle.net/6fjV9/4/

【讨论】:

  • 啊,我明白了,谢谢!所以另一方面,如果其他人遇到这个问题:coderwall.com/p/tctqaa 不一定会带来任何优势! “不要使用宽度为 20000 像素的包装器”我相信这是错误的,因为上面的小提琴清楚地表明需要这样的包装器宽度。
  • 好吧,老实说,我根本没有尝试设置任何宽度,但它应该可以工作,试试看;)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 2011-07-08
  • 2013-07-22
  • 2016-03-25
  • 1970-01-01
相关资源
最近更新 更多