gpt4 book ai didi

html - 为什么 IFRAME 不像表格单元格那样根据内容调整自身大小?

转载 作者:行者123 更新时间:2023-11-28 18:41:05 27 4
gpt4 key购买 nike

我试图显示几个 iframe,使它们都占据屏幕的宽度,但左侧的第一个 iframe 的宽度仅足以显示其所有内容。我见过几个使用 javascript 的解决方案,但我不明白为什么这是必要的,我真的很想只使用 CSS3 来完成它。

我一直在阅读一些 CSS3 规范 ( http://www.w3.org/TR/css3-box/#Calculating ),虽然它有点难以理解,但如果我指定自动宽度,它似乎应该使用“收缩以适合”。但是,它不会这样做。例如,在下面的代码中,frame1.html 包含与第二个表中第一个 td 相同的内容,而 frame2.html 包含与第二个表中第二个 td 相同的内容:

<!doctype html>
<html>
<head>
<title>Frame Test</title>
</head>
<body>
<table>
<tr>
<td><iframe src="frame1.html"></iframe></td>
<td><iframe src="frame2.html"></iframe></td>
</tr>
</table>
<table>
<tr>
<td>Hello</td>
<td>Goodbye ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ</td>
</tr>
</table>
</body>
</html>

但是,左边的 iframe 中有一堆额外的空间。为什么?我最好的猜测是 iframe 以某种方式在外部标签(例如 html 或 body 标签)中插入额外的空间,这似乎不太可能,因为 Firebug 说大部分空间都在实际文本中,或者自动宽度计算是某种方式与 iframe 不同的是 td。 (对所涉及的算法进行清晰、易于理解的解释会很好!)我已经尝试了各种宽度和高度设置,一直传播到 html 标记,但我似乎无法使任何工作正常进行。

为什么它不收缩以适应,所以它只使用其元素实际占用的空间?

最佳答案

我想这是因为 iframe 实际上并不包含它在 HTML/CSS 意义上的“内容”。

在实际的 DOM 上设置样式很容易,而这正是 CSS 的用途。但是 iframe 是一个完全不同的 DOM 窗口,独立于父级。父页面不知道 iframe 的“内容”,因此无法设置 iframe 的尺寸以匹配这些内容。

许多人会建议...您真的应该尽量避免框架。根据我的经验,它们带来的麻烦多于它们的值(value)。在单个 DOM 中维护样式和行为要容易得多。

关于html - 为什么 IFRAME 不像表格单元格那样根据内容调整自身大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11381042/

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