gpt4 book ai didi

html - 如何在具有特定高度的div内制作一个可滚动的div

转载 作者:太空宇宙 更新时间:2023-11-03 22:53:41 24 4
gpt4 key购买 nike

我知道有很多这样的问题,但我阅读了它们,但没有找到适合我的具体情况的答案。

我有一个 PHP 文件,它为我生成一个包含大量数据的页面。我想让它更人性化,所以我创建了一个列设计,其中每一列都有它的标题、部分内容和页脚。我不想让内容部分可滚动,因为它包含多个内部数据的 div。

我要实现的是 What I want to achieve is

我所做的是 What I did yet achieve is

and

是的,这些不是原始屏幕截图,而是我得到的模型。由于我想要显示的数据不会公开共享,因此以这种方式制作它们更容易;)你知道,私有(private)的东西......

下面是我的CSS和部分HTML(负责查看一栏):

div.col {
float: left;
width: 22.5%;
margin: 0px 10px 0px 10px;
border: 1px solid gray;
height: 95vh;
}

div.article-container {
overflow: auto;
position: relative;
}

header, footer {
padding: 0.1em;
color: white;
background-color: black;
clear: left;
text-align: center;
}

article {
padding: 1em;
overflow: hidden;
border: 1px solid gray;
margin: 10px;
text-align: center;
}
<body>
<div class="col">
<header>
<h4>Header text header text header text</h4>
</header>
<div class="article-container">
<article>
<h2>Nazwa</h2>
<h3>Data</h3>
<p>Osoba</p>
</article>
<article>
<h2>Nazwa</h2>
<h3>Data</h3>
<p>Osoba</p>
</article>
</div>
<footer>Footer text footer text footer text</footer>
</div>
<div class="col">
<header>
<h4>Header text header text header text</h4>
</header>
<article>
<h2>Nazwa</h2>
<h3>Data</h3>
<p>Osoba</p>
</article>
<article>
<h2>Nazwa</h2>
<h3>Data</h3>
<p>Osoba</p>
</article>
<footer>Footer text footer text footer text</footer>
</div>
</body>

你能帮我找到一个答案吗:如何在此处正确组合 CSS 和 HTML 以获得固定的页眉、固定的页脚和可滚动的空间以及它们之间的内容?

提前谢谢大家:)

最佳答案

如果您尝试定位,您也许可以解决这个问题。页眉/页脚需要有一个相对静态的高度,因为它需要用于定位文章容器。

示例1(静态高度)

* { box-sizing: border-box; }

div.col {
float: left;
width: 22.5%;
margin: 0px 10px 0px 10px;
border: 1px solid;
height: 95vh;
position: relative; /* notice */
}

div.article-container {
overflow: auto;
position: absolute;

/* notice */
top: 82px; /* the header height */
bottom: 39px; /* the footer height */
left: 0; right: 0;
}

header {
height: 82px; /* placeholder */
}

footer { /* notice */
position: absolute;
bottom: 0; left: 0; right: 0;
height: 39px; /* placeholder */
}

header, footer {
padding: 0.1em;
color: white;
background-color: black;
clear: left;
text-align: center;
}

article {
padding: 1em;
overflow: hidden;
border: 1px solid gray;
margin: 10px;
text-align: center;
}
<body>
<div class="col">
<header>
<h4>Header text header text header text</h4>
</header>
<div class="article-container">
<article>
<h2>Nazwa</h2>
<h3>Data</h3>
<p>Osoba</p>
</article>
<article>
<h2>Nazwa</h2>
<h3>Data</h3>
<p>Osoba</p>
</article>
</div>
<footer>Footer text footer text footer text</footer>
</div>
</body>

例子2( flex 盒子)

* { box-sizing: border-box; }

div.col {
float: left;
width: 22.5%;
margin: 0px 10px 0px 10px;
border: 1px solid;
height: 95vh;
display: flex;
flex-direction: column;
align-items: stretch;
}

.article-container, footer, header {
flex-basis: 0;
}

div.article-container {
overflow-y: auto;
flex-grow: 1;
}

header, footer {
padding: 0.1em;
color: white;
background-color: black;
clear: left;
text-align: center;
}

article {
padding: 1em;
overflow: hidden;
border: 1px solid gray;
margin: 10px;
text-align: center;
}
<body>
<div class="col">
<header>
<h4>Header text header text header text</h4>
</header>
<div class="article-container">
<article>
<h2>Nazwa</h2>
<h3>Data</h3>
<p>Osoba</p>
</article>
<article>
<h2>Nazwa</h2>
<h3>Data</h3>
<p>Osoba</p>
</article>
</div>
<footer>Footer text footer text footer text</footer>
</div>
</body>

关于html - 如何在具有特定高度的div内制作一个可滚动的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39208454/

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