gpt4 book ai didi

javascript - 当内容超过页面大小时如何设置div可滚动?

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:49 24 4
gpt4 key购买 nike

我有下一页:

<div id = "menu">
Menu on the left side
</div>
<div id = "header">
Header content of the page
</div>
<div id = "body">
Data Data Data Data Data Data Data
</div>
<div id = "footer">
Additional Information
</div>

下一个布局:菜单应该在左侧:

#menu{
background: #244a7c;
padding: 7px 23px 0 7px;
width: 299px;
height: 1000px;
overflow: inherit;
margin-left: 0px;
display: block;
float: left;
}
#header{
display: inline-block;
width: 400px;
border-bottom: 1px solid rgb(238, 238, 238);
}

Body 内部可以有不同的数据。我的问题是:

当正文内容超过用户页面时,我想修复除正文之外的所有 div。菜单应位于左侧,页眉应位于页面顶部,页脚应位于底部,只有正文应可滚动。

请帮忙。

谢谢!

最佳答案

这里有 2 个纯 CSS 解决方案

不固定任何高度(页眉/页脚)或宽度(左列)。

其实我更喜欢第二种方案。 (即使他的浏览器支持较少)

1 - 使用 CSS 技巧

这是一个完全响应式设计,适用于所有浏览器(IE10、FF、Chrome、Safari、Opera、移动浏览器)

Working Fiddle

HTML:

<div class="Container">
<div class="Header">
</div>
<div class="HeightTaker">
<div class="Wrapper Container Inverse">
<div>
<div class="Footer">
</div>
</div>
<div class="HeightTaker">
<div class="Wrapper">
<div class="LeftMenu">
</div>
<div class="Content">
</div>
</div>
</div>
</div>
</div>
</div>

CSS:

*
{
margin: 0;
padding: 0;
}
html, body, .Container
{
height: 100%;
}
.Container:before
{
content: '';
height: 100%;
float: left;
}
.HeightTaker
{
position: relative;
z-index: 1;
}
.HeightTaker:after
{
content: '';
clear: both;
display: block;
}
.Wrapper
{
position: absolute;
width: 100%;
height: 100%;
}
.Inverse, .Inverse > *
{
-moz-transform: rotateX(180deg);
-ms-transform: rotateX(180deg);
-o-transform: rotate(180deg);
-webkit-transform: rotateX(180deg);
transform: rotateX(180deg);
}
.LeftMenu
{
height: 100%;
float: left;
}
.Content
{
overflow: auto;
height: 100%;
}

/*For demonstration only*/
p
{
font-size: 1.3em;
}

.Important
{
font-weight: bolder;
color: white;
}

body > .Container
{
text-align: center;
}

.Header
{
background-color: #bf5b5b;
}
.LeftMenu
{
background-color: #bdbe4c;
}

.Content
{
background-color: #90adc1;
}
.Footer
{
background-color: #b5a8b7;
}

2 - 使用 Flex

这种布局也可以用flex来实现,但是目前浏览器的支持是纯的。这是一个 Working Fiddle FF、Chrome、IE10。

HTML:(更简单)

<header>
</header>
<section class="Middle">
<div class="LeftMenu">
</div>
<div class="Content">
</div>
</section>
<footer>
</footer>

CSS:

*
{
margin: 0;
padding: 0;
}
html, body
{
height: 100%;
text-align: center;
}

body
{
display: -webkit-flex;
display: -ms-flexbox;
display: flex;

-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
}

.Middle
{
-webkit-flex: 1 1 auto;
-ms-flex: 1 1 auto;
flex: 1 1 0;

display: -webkit-flex;
display: -ms-flexbox;
display: flex;

overflow: hidden;
}

.Content
{
-webkit-flex: 1 1 auto;
-ms-flex: 1 1 auto;
flex: 1 0 0;

overflow: auto;
}

/*For demonstration only*/
p
{
font-size: 1.3em;
}

.Important
{
font-weight: bolder;
color: white;
}

header
{
background-color: #bf5b5b;
}
.LeftMenu
{
background-color: #bdbe4c;
}

.Content
{
background-color: #90adc1;
}
footer
{
background-color: #b5a8b7;
}

关于javascript - 当内容超过页面大小时如何设置div可滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19408660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com