2011-11-02 47 views
2

我有麻烦来实现相当“异国情调”的布局,这是某种“嵌套”布局,其中HEADER和Footer实际上是右列(或“帧”):“异国情调”的CSS布局 - 左固定静态,包含混合元素的右流体滚动

- Left column - Fixed,Static 
- Right column - Fluid/liquid/scrollable 
--- Header - fixed 
--- left/main fluid/liquid 
--- Right/sidebar - fixed 

视觉它应该是类似的东西:

Example

所以基本上淡黄色区域是静态的,固定的并且总是在视图中。

绿色框架是可滚动的,它包含页眉,页脚和侧边栏。

我搜索了所有主要的“css-layout-galleries”网站,但我还没有遇到一个可靠的解决方案。 (大多数都有在页面顶部的标题)

我的主要问题是实现防弹方法,将上所有主要的操作系统&浏览器工作(火狐3.6 - 6,IE 6-9,歌剧,Safari浏览器> Mac,Win,Linux)

现在,(通常预期)IE总是给我一个很难的时间,尽管在一些布局实验中,Firefox也给出了意想不到的不同结果(在3.6和5例如)

我希望有人能指出我正确的方向。

回答

0

你试过类似的东西吗? (fiddle)我认为这几乎是你所需要的。

HTLM:

<div id="left-col">left col</div> 

<div id="container"> 

    <div id="header">header</div> 
    <div id="main"> 
     <div id="sidebar">sidebar</div> 
     main 
    </div> 
    <div id="footer">footer</div> 
</div> 

CSS:

#left-col { 
    width: 50px; 
    position: fixed; 
    background: yellow; 
    left: 0; 
    top: 0; 
} 
#container { 
    margin-left: 50px; 
    background: black; 
} 
#header { 
    background: green; 
} 
#main { 
    background: blue; 
    position: relative; 
} 
#sidebar { 
    position: absolute; 
    top: 0; 
    right: 0; 
    width: 50px; 
    background: pink; 
} 
#footer { 
    background: red; 
} 

它的工作在FF,Chrome和Opera在Mac。我现在无法在任何Windows浏览器中测试它,所以IE可能会成为一个问题:P无论如何,如果这种方法有效,您仍然需要修正左侧栏和侧栏的高度,以便以某种方式100%。但在此之前,您可以试试这个布局。

+0

感谢您的答复... – krembo99

+0

感谢您的答复。我已经尝试了很类似的解决方案已经,遗憾的是:1,在IE6中不起作用(是的,我们都希望杀死IE6,但它仍然非常活跃,特别是在亚洲 - ie6 + 7 =接近20%...)2.当空白时,布局看起来不错,但填充内容和侧边栏隐藏了主要区域(用margin-left容易修正:samevalue_px;)3.如果页面上没有足够的内容 - 页脚h在侧边栏后面的ide。无论如何,再次感谢您的帮助!如果我能找到解决方案 - 我会发布它。 – krembo99

2

这应该让你关闭,IE 6+兼容性,如果你做这样的事情fiddle

HTML:

<div class="outer"> 
    <div class="side"> 
    Side content. Fixed width. Floats left with a negative margin. 
    </div> 
    <div class="main"> 
    Main content...fills the rest of the width (fluid) 
    </div> 
</div> 

CSS:

div.outer { 
    margin-left: 100px; 
    background: red; 
} 

div.outer div.side { 
    display: inline; /* for IE 6 */ 
    float: left; 
    width: 90px; 
    margin-left: -100px; 
    background: yellow; 
} 

div.outer div.main { 
    min-height: 200px; 
} 
+0

非常感谢您的回复。不幸的是,你的建议并不适用于我的需求。这可能是你误解了要求。在你的布局中,左列不固定,甚至在应用位置之后:fixed; height:100% - 它与页面一起滚动(IE6)。此外,内部部门在应用时(在你的例子中缺失)会带来其他困难。谢谢无论如何,任何进一步的建议将不胜感激。到目前为止,scumah的提案更接近了,我仍然希望我可以修改它来满足需求...... – krembo99