gpt4 book ai didi

JavaScript:我可以跳过复杂的 div 大小调整以获得我想要的 "full width block, no vertical overlap"行为吗?

转载 作者:行者123 更新时间:2023-11-28 01:07:19 29 4
gpt4 key购买 nike

我问这个是因为可能有一种更简单的方法来做我想做的事情,但我对特定组件的了解还不足以提出正确的问题。

我想要的似乎很简单:我有一系列 divs在 HTML 文件中顺序相邻(文件中的下一行),我想使用 insertHTML能够将图像和一些相关文本插入每个 divs . divs应该是当前浏览器窗口的全宽,我希望垂直大小随内容动态调整,这样 div 上方或下方不会溢出。 .而且,没有垂直浪费的空间可言。

我认为这可以通过一种简单的方式完成并且已被证明是错误的,但我发现最简单的方法是垂直调整 divs 的大小在同样运行 insertHTML() 的代码中.我的密码是 already posted here,当我问为什么调整大小不起作用时。 (答案是我遵循的示例没有指定单位,所以我也没有指定单位,但是一旦它有了单位,它就起作用了。)

代码中唯一没有显示的部分可能是相关的,插入到 divs 中的代码通过insertHTML :

html = '<hr><a href="'+link+'"><img src="'+image+'" width="60%" align="right"></img><h1>'+title+'</h1></a>'+summary;
target.style.height = height+"px";
target.innerHTML = html;

好的,所以我现在有一些东西有时非常好,但垂直高度来自图像的原始高度,但有时这不是真实高度,因为我需要将大图像的大小重新调整为 60%显示宽度以保持格式合理。同时,文本有时也会溢出图像的高度,所以即使我知道图像的实际高度 - 我想我是通过 onLoad 中的“<img> ”指令调用的函数获得的。标签 - 这并不总是足够的。

所以,即使我有加载后的图像尺寸,我仍然不知道 div 的最终尺寸应根据文本设置为。

在我的长载体中,我发现如果解决方案看起来很复杂,则可以安全地假设“我只是做错了”。正确的做法是什么?

如果这是正确的方法,那么完成这个更复杂方法的最佳步骤是什么?例如,有没有办法获得 div 的“首选”大小,包括图像和文本?有没有办法在执行 insertHTML 的代码中获取当前图像的实际高度(我想不是因为图像尚未加载)?或者,还有什么是我没有考虑到的?

最佳答案

答案是……

...是的,我做错了!

我忽略了 div 的 CSS 特性,称为 overflow: auto; 添加这个,它突然起作用了!

因此,div 的代码现在如下所示:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
.mydivs { display:block; width:100%; margin:auto; overflow:auto; }
</style>

</head>
<body bgcolor="#E3FBFF" text="#000000" onload="loadImages();">
<script type = "text/javascript">
function loadImages()
{
// ...Function omitted for brevity...
// But it gets to this line where html
// contains the <img src> tag, etc, and
// target is already pointed at my div
// object:
target.innerHTML = html;
}
</script>
<div id=d0 class="mydivs"></div>
<hr>
<div id=d1 class="mydivs"></div>
<hr>
<div id=d2 class="mydivs"></div>
<hr>
<div id=d3 class="mydivs"></div>
<hr>
</body>
</html>

简单!

关于JavaScript:我可以跳过复杂的 div 大小调整以获得我想要的 "full width block, no vertical overlap"行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52282418/

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