我有一个居中的页面,有两列填充窗口高度。 左列是固定,因此在滚动时始终可见。 右列包装页面内容,通常比左列更大。
HTML:
<div class="main-container">
<div class="col1">
<p>Fixed column</p>
</div>
<div class="col2">
<p>Content column</p>
</div>
</div>
CSS:
.main-container {
width: 300px;
height: 100%;
margin: 0 auto;
}
.col1 {
position: fixed;
width: 100px;
height: 100%;
background: fuchsia;
}
.col2 {
width: 200px;
margin-left: 100px;
background: cyan;
}
当浏览器窗口比页面宽度窄时(本例中为300px),将出现一个水平滚动条,固定列将保持固定并飞越内容列< / strong>即可。我想避免这种。
我可以用纯CSS(没有Javascript)实现这种垂直修复吗?
澄清:垂直滚动条必须是窗口滚动条,而不是.col2
中的内部滚动条。
答案 0 :(得分:1)
<强> Demo 强>
CSS
.col1 {
position: fixed;
width: 100px;
height: 100%;
background: fuchsia;
z-index: 1; /* z-index lower than than .col2 */
}
.col2 {
position: relative; /* position needed for z-index to work */
width: 200px;
margin-left: 100px;
background: cyan;
z-index: 2; /* z-index higher than than .col1 */
}
答案 1 :(得分:0)
我认为在您的情况下,您需要使用media queries或twitter bootstrap
答案 2 :(得分:0)
只需将CSS属性z-index:-1;
添加到固定列.col1
即可。
答案 3 :(得分:0)
您只能在.col2容器上使用绝对定位和溢出。这样,您仍然可以在垂直滚动上使用固定列,但不能在水平滚动上使用。
<强> CSS:强>
html, body {
height: 100%;
overflow-y: hidden;
}
.main-container {
position: relative;
width: 300px;
height: 100%;
margin: 0 auto;
}
.col1 {
position: absolute;
width: 100px;
height: 100%;
background: fuchsia;
}
.col2 {
width: 200px;
height: 100%;
margin-left: 100px;
overflow: auto;
}
.col2 .inner {
background: cyan;
}
.col2 .inner p {
margin: 0;
}