水平滚动css?

时间:2013-10-08 19:49:27

标签: html css overflow

我希望有一个<div> ID具有水平滚动,但问题是它必须是响应式的,而不是固定宽度。

html, body {margin: 0; padding: 0;}

#myWorkContent{
    width:530px;
    height:210px;
    border: 13px solid #bed5cd;
    overflow-x: scroll;
    overflow-y: hidden;
    white-space: nowrap;
}

#myWorkContent a {
    display: inline-block;
    vertical-align: middle;
}

#myWorkContent img {border: 0;}
<div id="myWorkContent">
     <a href="assets/work/1.jpg"><img src="http://placekitten.com/200/200/" height="190"></a>
     <a href="assets/work/2.jpg"><img src="http://placekitten.com/120/120/"/></a>
     <a href="assets/work/3.jpg"><img src="http://placekitten.com/90/90/" height="90" width="90"></a>
     <a href="assets/work/4.jpg"><img src="http://placekitten.com/50/50/" height="190"></a>
     <a href="assets/work/5.jpg"><img src="http://placekitten.com/100/100/"></a>
     <a href="assets/work/6.jpg"><img src="http://placekitten.com/200/200/" height="190"></a>
</div><!-- end myWorkContent -->

感谢http://jsfiddle.net/clairesuzy/FPBWr/

问题在于530px。我想用100%代替。但后来我得到了页面滚动和DIV的滚动向右,无法得到它,任何想法?

以下是关于解决方案的塞尔维亚文章 http://www.blog.play2web.com/index.php?id=18

5 个答案:

答案 0 :(得分:89)

只需将您的宽度设置为自动:

#myWorkContent{
    width: auto;
    height:210px;
    border: 13px solid #bed5cd;
    overflow-x: scroll;
    overflow-y: hidden;
    white-space: nowrap;
}

这样你的div可以尽可能宽,所以你可以添加尽可能多的kitty图像; 3

你的div的宽度将根据它包含的子元素进行扩展。

<强> jsFiddle

答案 1 :(得分:11)

以下为我工作。

高度&amp;宽度用于表示,如果你有2个这样的孩子,它会水平滚动,因为孩子的身高大于父卷轴的垂直高度。

父CSS:

.divParentClass {
    width: 200px;
    height: 100px;
    overflow: scroll;
    white-space: nowrap;
}

儿童CSS:

.divChildClass {
    width: 110px;
    height: 200px;
    display: inline-block;
}

仅水平滚动:

overflow-x: scroll;
overflow-y: hidden;

仅垂直滚动:

overflow-x: hidden;
overflow-y: scroll;

答案 2 :(得分:1)

只需确保将box-sizing:border-box;添加到#myWorkContent

http://jsfiddle.net/FPBWr/160/

答案 3 :(得分:0)

使用max-width而不是width

max-width:530px;

演示:http://jsfiddle.net/FPBWr/161/

答案 4 :(得分:0)

我这样想:

* { padding: 0; margin: 0 }
body { height: 100%; white-space: nowrap }
html { height: 100% }

.red { background: red }
.blue { background: blue }
.yellow { background: yellow }

.header { width: 100%; height: 10%; position: fixed }
.wrapper { width: 1000%; height: 100%; background: green }
.page { width: 10%; height: 100%; float: left }

<div class="header red"></div>
<div class="wrapper">
    <div class="page yellow"></div>
    <div class="page blue"></div>
    <div class="page yellow"></div>
    <div class="page blue"></div>
    <div class="page yellow"></div>
    <div class="page blue"></div>
    <div class="page yellow"></div>
    <div class="page blue"></div>
    <div class="page yellow"></div>
    <div class="page blue"></div>
</div>

我有1000%的包装和10页,每页10%。我设置为仍然有“页面”,每个页面都是100%的窗口(颜色编码)。你可以用800%的包装器做八页。我想你可以省略颜色并继续页面。我也设置了一个固定的标题,但这不是必需的。希望这会有所帮助。