【发布时间】:2012-10-14 00:23:52
【问题描述】:
我正在构建一个固定宽度的网站(使用带有 margin:auto 的经典包装器),但我希望侧边栏 背景 延伸到屏幕的右端。
到目前为止,我已经完成了:
HTML
<div id="wrapper">
<div id="left">Content area</div>
<div id="right">
<div id="actual-sidebar">
Sidebar
<span class="clearme"></span>
</div>
</div>
</div>
CSS
body {
background: #333;
color: #fff;
overflow-x: hidden;
}
#wrapper {
width: 500px;
height: 1200px;
margin: auto;
border: 2px dashed #fff;
}
#left {
width: 300px;
height: 500px;
float: left;
}
#right {
width: 175px;
height: 500px;
margin-left: 325px;
margin-right: -9999px;
padding-right: 9999px;
background: #777;
}
#actual-sidebar {
width: 100%;
height: 100%;
border: 2px dotted #f0f;
}
你可以在这里看到它的实际效果:
http://jsfiddle.net/knjDV/
http://www.spazionegativo.it/layout-test/
仅使用 css 是否可以实现这种“全角侧边栏”?
在上面的例子中,实际侧边栏宽度被粉红色边框突出显示,其余全部为填充和负边距;在 chrome 中工作,但 IE 破坏了它,所以我添加了 overflow-x: hidden 来修复它。
问题是,即使没有任何内容可供选择,向右单击拖动也会滚动视图,最终隐藏内容。我似乎无法解决这个问题。
是否有解决“拖动-n-滚动”问题的方法,或者有完全不同的方法来解决这个问题?
【问题讨论】:
-
我很难弄清楚您在这里要解决什么问题,即拖动-n-滚动问题,它的行为似乎完全符合其应有的行为。
-
对不起,我不是很清楚。我的意思是,如果您单击并向右拖动,您将水平滚动视图并最终隐藏内容,这不是我想要实现的行为。
-
这似乎是一个jsfiddle故障,你有可以链接到的网站吗?
-
我已经上传到这里了:spazionegativo.it/layout-test
-
我认为你应该带着这个去上学。创建一个 2000 像素宽和 1 像素高的图像。用你想要的颜色填充右边的 1000px。现在将此图像设置为您的背景并重复-y。如果您需要它停在某个高度,您可以将图像放在绝对定位的 div 上并以此方式限制其高度。