可以滚动的半固定,半可滚动布局... CSS

时间:2013-09-27 16:44:17

标签: html css

我有一个需要以下的奇特设计。左侧必须滚动,而右侧+顶部头必须保持(固定)。见附图。

我可以通过位置完成此操作:固定在顶部和右侧。顶部&当左侧滚动时,右侧保持放置.... 然后问题是如果任何人放大并且您也无法从左向右滚动以查看整页

如何攻击这样的布局?

谢谢。

之前无法发布代码 - 让我再试一次:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Exotic</title>


<style type="text/css">
#top {
background-color: #FF0;
width: 1800px;
height: 50px;
position: fixed;
left: 0px;
top: 0px;
}

#sideLeft {
float: left;
width: 950px;
background-color: #9C0;
clear: left;
}

#sidebarLeft {
background-color: #0CC;
height: 800px;
width: 300px;
float: left;
}

.list {
float: left;
width: 600px;
margin-top: 100px;
}
#ordoner {
background-color: #F90;
float: left;
width: 640px;
height: 800px;
position: fixed;
top: 50px;
left: 950px;
}

#sidebarRight {
width: 210px;
height: 800px;
position: fixed;
top: 50px;
left: 1590px;
background-color: #0CF;
}

</style>
</head>

<body>
<div id="top">
</div>
<div id="sideLeft">
  <div id="sidebarLeft"><!--end #sidebarLeft--></div>
  <div class="list"><!--end .lisist--></div>
<!--end #sideLeft--></div>
<div id="ordoner"><!--end #ordoner--></div>
<div id="sidebarRight"><!--end #sidebarRight--></div>
<div id="footer"></div>
</body>
</html>

enter image description here

澄清: 我的css在右侧反映了两件事,但重点是右侧和顶部应该是静态的,而左侧滚动...并且如果用户放大,它们应该是水平可滚动的:)

另外,我已经尝试在容器div中包装东西,但是它有自己的问题 - 如果窗口未最大化,它会滚动但不会到达右侧。

再次感谢。

澄清一下:作为一个例子来说明我的观点...请将stackoverflow窗口调整为水平屏幕大小的一半...现在看看如何从左向右滚动?如果放大,您也可以从左向右滚动以查看整个页面。好吧,在我的布局中,它在全屏浏览器模式下工作...一旦我调整底部的滚动条,根本不会出现,使用户无法水平滚动。见下图

小提琴 http://jsfiddle.net/moby7000/tWb3e/

enter image description here

enter image description here

New picture of layout with more detail:

3 个答案:

答案 0 :(得分:12)

创建这样的布局并不是很难。

我为你创建了一个,看到Working Fiddle

<强> HTML:

<div class="Container">
    <div class="Header">
        <p>The Header div height is not fixed (But he can be if you want it to)</p>
        <p>This Layout has been tested on: IE10, IE9, IE8, FireFox, Chrome, Safari, Opera. using Pure CSS 2.1 only</p>
    </div>
    <div class="Content">
        <div class="Wrapper">
            <div class="RightContent">
                <p>You can fix the width of this content.</p>
                <p>if you wont, his width will stretch just as it needs to.</p>
            </div>
            <div class="LeftContent">
                <p>this will scroll</p>
            </div>
        </div>
    </div>
</div>

<强> CSS:

*
{
    margin: 0;
    padding: 0;
}

html, body, .Container
{
    height: 100%;
}

    .Container:before
    {
        content: '';
        height: 100%;
        float: left;
    }

.Header
{
    margin-bottom: 10px;
    background-color: #6ea364;
}
.Content
{
    position: relative;
    z-index: 1;
}
    .Content:after
    {
        content: '';
        clear: both;
        display: block;
    }

.Wrapper
{
    position: absolute;
    width: 100%;
    height: 100%;
}
    .Wrapper > div
    {
        height: 100%;
    }

.LeftContent
{
    background-color: purple;
    overflow: auto;
}

.RightContent
{
    background-color: orange;
    float: right;
    margin-left: 10px;
}

<强>加成: 通过CSS的一点变化,您可以创建漂亮的滚动。 见Fiddle

修改 如果你想在左侧设置一个宽度值,那实际上比体型大(并且有一个水平滚动),按that方式进行。

<div class="LeftContent">
    <div style="width:1200px;"> <-- better to aplly the width from the CSS
        ..<The content>..
    </div>
</div>

答案 1 :(得分:0)

你试过吗

overflow-y: scroll;

身体?

答案 2 :(得分:0)

您需要将overflow:auto;添加到要滚动的区域。