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

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

问题描述:

所以基本上我有水平堆叠这样3 inline-block的div的:调整窗口大小相对于中心的滚动位置?

DIV1 - DIV2 - DIV3

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

但是,滚动条总是从左侧开始,所以我的内容包装(div2)是我应该居中的主要内容。相反,div1(ad)在左侧首先出现,然后是内容包装。我该如何纠正这种情况?我知道如果我要摆脱身体上的单词包装,div就会以我想要的方式居中,但这会在不应该的时候带回div封装的初始问题。无论如何,我可以解决使用CSS的两个问题吗?

+0

我想我理解了所有的东西,直到最后一段。你可以发布问题的屏幕截图以及CSS吗?说'white-space:nowrap'阻止了'div'元素分开的行,给了我一个你正在做的事情的想法,但是我仍然不知道发生了什么。 – Zhihao 2012-08-11 03:44:39

+0

这是浏览器首先显示页面左侧部分(最左侧的滚动位置)的默认行为。当你缩小窗口的大小时,它必须选择一些切断的东西,所以它删除了最右边的部分。我不相信这对于纯CSS来说是可能的,因为在我听起来像你想在用户调整页面大小时调整滚动位置(相对于滚动“空间”而不是页面位置)。你可能需要依靠JavaScript来做到这一点。 – Zhihao 2012-08-11 04:13:35

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

的解决方案是以下两个属性添加到一个容器,包裹着我的主要内容和列:

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

我已经适应了这个展示它如何在一个三栏布局搭配使用两边的两座摩天大楼:DEMO

+0

谢谢,这工作! – hesson 2012-08-11 18:08:33