在窗口调整大小时相对于中心调整滚动位置?

时间:2012-08-11 03:34:25

标签: javascript css layout scroll

所以基本上我有3个水平堆叠的内联块div:

div1 - div2 - div3

div1和div3是摩天大楼广告,div2是我的主要内容包装器。我最初的问题是每当我调整窗口大小以使其宽度小于div的宽度组合时,div2和div3将换行到div1下面的下一行,因为它们不适合同一行(查看时同样的问题)智能手机或平板电脑的网站,因为它们的宽度很小),而div1(广告)会在主页面上笨拙地坐在那里。我通过将white-space: nowrap添加到body标签以防止div包装,并添加white-space: normal内容包装器div来防止它从body元素继承以便内容文本可以正常包装来解决这个问题。这解决了问题,现在当我访问网站时,无论浏览器宽度如何,三个div总是在同一条线上,如果需要,还有一个水平滚动条。

但是,滚动条总是从左侧开始,因此我的内容包装器(div2)是我应该居中的主要内容。而是div1(ad)首先显示在左侧,然后是内容包装器。我该如何纠正这种情况?我知道如果我要摆脱身体上的自动换行,div就会按照我想要的方式居中,但是这会在不应该的情况下带回div的初始问题。无论如何我可以使用CSS解决这两个问题吗?

1 个答案:

答案 0 :(得分:1)

我曾经做过类似的事情,我需要一个列偏移到主要内容区域的右侧。很容易将列定位到右侧,但真正的技巧是阻止它影响页面的溢出/滚动。

解决方案是将以下两个属性添加到包装主内容和列的容器中:

#wrap { 
    min-width: 960px; 
    overflow-x: hidden; 
}

我已经对此进行了调整,以展示它如何在3列布局中使用,两侧有两座摩天大楼:DEMO