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

2024-04-02

如何使用 CSS 属性来允许div与嵌套divs,定义了绝对位置,以便能够滚动一次这些定义的位置divs 超出其父级div?

我已经精简了我的项目,(希望)只包含您在下面需要的内容,并且我认识到,使用我在这里演示的示例有更干净的方法可以做到这一点,但认为值得询问,因为有人可能有洞察力我(和其他人)可以从中学习。 在我的例子中,有div“盒子”(他们有class=stuffbox)被放置在一个div (has 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 及其绝对位置。

如果问题的措辞不好,我深表歉意(请告诉我,我会再试一次),但希望这个例子能够清楚地表达我的意图。

提前致谢。


Use 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 td 内部制作一个可滚动的 div,其中的 div 定义了绝对位置 的相关文章

  • Chrome 浏览器不显示 HTTP 处理程序生成的图像

    基本上我有一个网站 可以呈现一些文档 主要是办公室 的 HTML 预览 生成的 HTML 片段包含在同一网站返回的页面中 但图像由 HTTP 处理程序从具有以下链接的另一个网站返回 img width 50 height 50 src ht
  • 如何在 PHPStorm 中禁用 html 标签完成

    当我在 HTML 其他上下文中并输入时foobar然后按Tab键它会自动变成
  • 根据复选框和数据元素隐藏/显示表格行

    我想隐藏表中的行 因为我选中了复选框并且该数据元素在表中不正确 另一个实验 我还可以使用数据元素进行排序并按下拉列表排序 查看 tr 标签 价格 名称 评级 吗 div class filter list div
  • 使用 pkg:sjPlot 函数创建一个生成部分斜体单元格的数据框

    我正在尝试创建一个简单的数据表 其中 Coral taxon 列中的属名称为斜体 而 spp 列中的属名称为斜体 属名后面的部分不大写 我尝试使用 expression 函数对 Coral taxon 的每一行进行编码 但没有成功 sum
  • 滚动时输入自动完成位置错误(chrome)

    我在输入文本的默认自动完成功能方面遇到了一些麻烦 滚动时它不会相应移动 我希望自动完成文本保留在输入的正下方 有办法做到这一点吗 我在 Chrome 浏览器版本 57 0 2987 133 中发生这种情况 fiddle https jsfi
  • 创建一个简单的 10 秒倒计时

    我想要一行这样写的 Your download will begin in 10 9 8 etc Beginning on page load seconds 我已经设置了 10 秒下载文本 并且我还查看了其他 stackoverflow
  • Twitter bootstrap:居中缩略图

    我有一个缩略图列表 它们有固定的尺寸 我希望连续缩略图的数量随着窗口的宽度而变化 使用 Twitter Bootstrap 这很容易 http jsfiddle net charlesbourasseau 5WvAL http jsfidd
  • 如何在 font Awesome 图标链接下方添加添加文本?

    我正在尝试在我的 Blogger 模板中的 font awesome Icons 下添加一些文本 这是我想要实现的目标的图像 我想要实现的外观图片 https i stack imgur com BVYlh png 但到目前为止我已经做到了
  • iOS 解决方法:在没有 CSS 属性的情况下平滑滚动 滚动行为:平滑?

    编辑 我找到了一个 jQuery 解决方案 https codepen io chriscoyier pen dpBMVP https codepen io chriscoyier pen dpBMVP这个确实可以在 iOS 上运行 我想
  • 如何仅在 css/html 中强制在单词之间换行?

    我只有一段普通的文本 p 标签内的 p div 标签 但只有 Firefox 可以正确显示 Firefox 打破了单词之间的界限 所有其他浏览器都会在单词中间断行 这使得阅读变得困难 这是我的意思的一个例子 火狐浏览器 工作中 This w
  • 同页锚链接到部分 id 在 IE8 中不起作用

    我有一个带有导航的单页 HTML5 网站 可以将用户引导至该部分 在除 IE8 之外的所有浏览器中都可以正常工作 IE8 不执行任何操作 我所拥有的虚拟版本 a href about About a a href work Work a a
  • Chromium 嵌入式框架支持 HTML5 音频吗?

    我一直在玩 CefSharp 但似乎无法播放任何音频 我可以让音频控件出现 但它们保持冻结状态 这些是我使用的版本 Chromium 21 0 1180 0 CEF r728 CefSharp 0 12 4596 50 我先尝试了 mp3
  • 如何适应特定子元素的宽度?

    problem 我正在尝试创建一个技能表 我无法问下一个问题为什么 所以我创建了一个新帐户并询问 当前状态 我想将元素的宽度与 meter 也就是说 如何设定区块的标准 meter 子元素 在上面的 gif 中 img meter 我想要保
  • 扩展位置绝对div超出溢出隐藏div

    我已经好几个月没有做过CSS了 所以我可能会错过一些简单的东西 但无论解决方案是什么 我都无法弄清楚 所以问题就在这里 这是我的代码的简化版本 div style height 100 width 200px div style margi
  • html css 下拉菜单

    这是我第一次在 Stack Overflow 上发帖 我不熟悉论坛发帖规定 所以请让我知道我做错了什么 我在论坛中研究过这个问题 但我所遇到的一切都没有给我明确的答案 我试图从 新闻 元素创建一个下拉菜单 但在运行代码时我从未得到任何可见的
  • 获取点击的的DOM路径

    HTML div class lol a class rightArrow href a div 伪代码 rightArrow click function rightArrowParents this dom dom is the pse
  • 引导行之间的垂直间距

    所以我正在研究布局 为了 响应能力 我决定使用 Bootstrap 现在我猜网格系统有问题 我想要的结果如下 1 4 2
  • 如何在html中制作多行类型的文本框?

  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • 如何使用Python保存“完整的网页”而不仅仅是基本的html

    我正在使用以下代码来使用 Python 保存网页 import urllib import sys from bs4 import BeautifulSoup url http www vodafone de privat tarife r

随机推荐