gpt4 book ai didi

html - 在 td 内制作一个可滚动的 div,其中的 div 定义了绝对位置

转载 作者:可可西里 更新时间:2023-11-01 12:56:09 24 4
gpt4 key购买 nike

如何使用 CSS 属性来允许具有嵌套 divdiv 定义了绝对位置,以便能够在定义的位置滚动一次那些 div 超出了它们的父级 div

我已经精简了我的元素(希望)仅包含您在下面需要的内容,并且我认识到使用我在此处展示的示例可以使用更简洁的方法来执行此操作,但我认为这值得一问,因为有人可能有我(和其他人)可以从中学习的洞察力。在我的示例中,div“盒子”(它们有 class=stuffbox)被放置在 div(有 class =innerstuffcols) 并且它们溢出了它们父级 div 的垂直边界。

    #mainHeader {
background-color: #999999;
color: #ffffff;
position: absolute;
width: 100%;
height: 5%;
left: 0;
top: 0;
}

#mainPlace {
position:absolute;
width:100%;
height:95%;
left:0;
top:5%;
overflow:hidden;
}

#mainTable {
position:absolute;
left:0;
height:100%;
width: 85%;
overflow:hidden;
}

#mainMenu {
position:absolute;
left:85%;
right:0;
height:100%;
}


#tablebody {
height: 100%;
width: 100%;
}

th.tableheaders {
border:1px solid black;
height: 5%
}

td.someCols {
border:1px solid black;
}

table, th, td {
border-collapse: collapse;
}

div.innerstuffCols {
height: 100%;
width:100%;
overflow-y: auto;
overflow-x: hidden;
}

div.stuffbox {
height:200px;
position:absolute;
width:200px;
left:5px;
text-align: center;
background-color: #f1f1f1;
}
<html lang="en-US">
<head>
<meta charset="utf-8">
<title>stuff</title>
<link rel="stylesheet" href="st.css">
</head>
<body>

<div id="mainHeader">
<p align="center"> random header here </p>
</div>

<div id="mainPlace">
<div id="mainTable">
<table style='width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;border:1px solid black'>
<tr id='tableheader'>
<th class='tableheaders'>header 1</th>
<th class='tableheaders'>header 2</th>
</tr>

<tr id='tablebody'>
<td class='someCols'>
<div class='innerstuffCols'>
<div class='stuffbox' style='top:55px;'> stuff 1 </div>
<div class='stuffbox' style='top:265px;'> stuff 2 </div>
<div class='stuffbox' style='top:475px;'> stuff 3 </div>
<div class='stuffbox' style='top:685px;'> stuff 4 </div>
<div class='stuffbox' style='top:895px;'> stuff 5 </div>
<div class='stuffbox' style='top:1105px;'> stuff 6 </div>
</div>
</td>
<td class='someCols'>
<div class='innerstuffCols'>
some other stuff
</div>
</td>
</tr>

</table>

</div>
<div id="mainMenu">
<p> some stuff here </p>
</div>
</div>
</body>
</html>

如前所述,我知道仅在我的示例中给出的范围内,有更好的方法可以做到这一点(使位置不是绝对的,等等)但是由于与更大的元素相关的各种原因(在这一点上 - 学术好奇心)我更愿意看到一个解释如何让上面的例子工作,同时保持那些 divs 的绝对位置。

如果问题的措辞不佳,我深表歉意(让我知道,我会再试一次),但希望这个例子能说明我的意图。

提前致谢。

最佳答案

使用position:relative 使绝对定位元素相对于该容器定位,并使用overflow:scroll 使其可滚动。 (您也可以省略 div 并直接在表格 cel 上执行此操作。)

#mainHeader {
background-color: #999999;
color: #ffffff;
position: absolute;
width: 100%;
height: 5%;
left: 0;
top: 0;
}

#mainPlace {
position: absolute;
width: 100%;
height: 95%;
left: 0;
top: 5%;
overflow: hidden;
}

#mainTable {
position: absolute;
left: 0;
height: 100%;
width: 85%;
overflow: hidden;
}

#mainMenu {
position: absolute;
left: 85%;
right: 0;
height: 100%;
}

#tablebody {
height: 100%;
width: 100%;
}

th.tableheaders {
border: 1px solid black;
height: 5%
}

td.someCols {
border: 1px solid black;
}

table,
th,
td {
border-collapse: collapse;
}

.innerstuffCols {
position: relative;
overflow-y: scroll;
width: 100%;
height: 100%;
}

div.stuffbox {
height: 200px;
position: absolute;
width: 200px;
left: 5px;
text-align: center;
background-color: #f1f1f1;
}
<div id="mainHeader">
<p align="center"> random header here </p>
</div>

<div id="mainPlace">
<div id="mainTable">
<table style='width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;border:1px solid black'>
<tr id='tableheader'>
<th class='tableheaders'>header 1</th>
<th class='tableheaders'>header 2</th>
</tr>

<tr id='tablebody'>
<td class='someCols'>
<div class='innerstuffCols'>
<div class='stuffbox' style='top:55px;'> stuff 1 </div>
<div class='stuffbox' style='top:265px;'> stuff 2 </div>
<div class='stuffbox' style='top:475px;'> stuff 3 </div>
<div class='stuffbox' style='top:685px;'> stuff 4 </div>
<div class='stuffbox' style='top:895px;'> stuff 5 </div>
<div class='stuffbox' style='top:1105px;'> stuff 6 </div>
</div>
</td>
<td class='someCols'>
<div class='innerstuffCols'>
some other stuff
</div>
</td>
</tr>

</table>

</div>
<div id="mainMenu">
<p> some stuff here </p>
</div>
</div>

关于html - 在 td 内制作一个可滚动的 div,其中的 div 定义了绝对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51601897/

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