位置固定宽度100%


74

我有一个position:fixed宽度为250px,高度为100%的左列,我试图在顶部但左侧列的右侧放置一个固定的,流畅的水平条,例如以下示例:

在此处输入图片说明

但这就是我要到达的地方:

在此处输入图片说明

这是我所做的:

JSFIDDLE

.page-wrapper, html, body {
    width:100%;
    height:100%;
    margin:0;
    padding:0;
}

.left-column {
    position:fixed;
    top:0;
    left:0;
    z-index:1000;
    width:250px;
    height:100%;
    background:#090909;
}

.top-bar {
    position:fixed;
    top:0;
    left:250px;
    width:100%;
    height:54px;
    background:#090909;
    z-index:1000;
}

如何使此固定的顶部栏跨过屏幕宽度的100%,而不会溢出。我希望这是一个简单的修复程序,因为我花了很长时间来构建一个相当复杂的响应模板,并且刚刚发现添加内容后,顶部栏右侧的内容在屏幕上消失了!

我确实有一个想法,但可能不是最理想的,因此首先对其他建议感兴趣。左固定列的z-index值可能会比顶栏的z-index值高,从顶栏删除左页边距,而是在左栏的内容上放置左页边距,与左栏的宽度相同。听起来令人困惑,但可能。


2
js小提琴会让事情变得简单
得多

1
您的.top-bar宽度必须设置为100% - 250px
Dipesh Parmar

Answers:


126

不需要最新CSS版本的非常简单的解决方案根本没有设置width。取而代之的是设置right: 0,这将迫使顶栏的右边界位于右边界,如此小提琴所示

.top-bar {
    position:fixed;
    top:0;
    left:250px;
    right:0;
    height:54px;
    background:#090909;
    z-index:1000;
}

我添加了红色边框,因此更容易看到框的结尾。


3
真好!谢谢你睁开眼睛 我以前从来不需要同时使用左右定位。
TheCarver

我知道它会很简单:)
Srneczek 2015年

30
如果我希望div是其父级而不是文档的100%宽度怎么办?

有人知道CSS3的方法吗?
马特·沃达

@MattVoda只是使用相同的代码?仅仅因为它在CSS2中起作用就不会使其在CSS3中无效(至少在大多数情况下)。
马里奥

7

而不是与left: 250pxusepadding-left:250px结合使用box-sizing: border-box

.top-bar {
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:54px;
    background:#090909;
    z-index:1000;
    padding-left: 250px;
    -moz-box-sizing: border-box:
    box-sizing: border-box:
}

小提琴


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.