css - 如何使用 css 在 iframe 中缩放图像
问题描述
用例
我正在使用 Google 表单进行一项调查。调查结果汇总在 Google 表格中。我有一系列图表,这些图表会随着新结果的出现而动态更新。我有一个 Squarespace 网站,我想在其中发布图表。我可以使用代码块嵌入图表,在其中复制并粘贴由 Google 表格生成的 iframe 嵌入代码。
问题
您可能知道,iframe 没有完全响应。我看过许多文章,其中包含使 iframe 响应的各种技术。我从所有使用 YouTube 视频播放器的示例中了解到,该示例使它们可扩展以适应完全响应的网站。我已经按照示例进行操作,并且据我所知,我已经让 iframe 响应视口的大小,而不是 iframe 内的图像。
我咨询了两个经营网络开发商店的朋友,但我不能要求太多帮助,因为我会要求他们免费工作,而且我不会要求我的朋友免费工作。
链接到 JSFiddle
https://jsfiddle.net/ArgyleAnalytics/z4rcv7hp/4/
这是我的 HTML
<div class='embed-container'>
<iframe src='https://docs.google.com/spreadsheets/d/e/2PACX-1vRPFtRq4MyzyU-MgDlL3duebxBNAHL6ySq2e_jatydzOseVyAzAHuoSA6VXAcalDkYMG1litTyKPkEn/pubchart?oid=501231490&format=image' scrolling="no" seamless frameboarder="0">
</iframe>
</div>
这是我的 CSS
<style>.embed-container {
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
max-width: 100%;
border: 0;
}
.embed-container iframe,
.embed-container object,
.embed-container embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
transform: scale(1.00);
transform-orgin: ()
}
</style>
我的代码注释
我正在使用我在多个博客中看到的方法,基本代码来自http://embedresponsively.com。我的一个朋友向我指出了这个 SO 线程,在那里我得到了transform: scale
你在 中看到的想法.embed-container iframe
。transform: scale
似乎让我成为了那里的一部分。当我调整我的代码时,transform: scale(0.25)
它会缩小我想要的图形,但这对于我想要实现的目标来说太不优雅了。现在,我的 CSS 使用比例的绝对值,而不是使用 iframe 的边缘作为参考点(我认为这是我需要实现的)。
我想要的结果
我希望 iframe 内的图像相对于 iframe 的边缘按比例缩小。Squarespace 将根据视口自动重新排列代码块的位置。如果我能找到一种方法将 iframe 绑定transform: scale
到 iframe 的边缘,我认为这将满足我的需求。
限制
我想在没有任何 JS 的情况下实现这一点,但如果需要的话我很灵活,因为我可以<scripts>
在 Squarespace 代码块内运行。如果我的 PHP 技能足够强大,我可能会使用 Google 的图表可视化套件手动编写我的图表,但我没有时间学习到那种熟练程度。
由于 Google 表格的限制,我可以听到我想做的事情无法完成,但我不知道我是否购买。我可以根据绝对值缩放图像,我希望有人能找到一种方法来帮助我根据 iframe 的大小在 iframe 内缩放图像。
解决方案
我认为它不可能影响页面中 iframed 的 CSS。您必须将响应式 CSS 添加到您尝试嵌入的页面中。由于它是谷歌生成的图像,您似乎不太可能有权这样做。您可以尝试做的只是下载图像并将其作为图像而不是 iframe 放置在方形空间站点上。
我不确定图像的数据是否是动态的,因此可能会影响您的操作。您是否考虑过寻找其他图形服务?可能有一些东西会与 google 表格相关联,或者如果你足够了解 javascript,你可以使用 googles api 构建自己的图表。
推荐阅读
- java - 无法通过子类访问父类方法
- angular - 在刷新页面之前没有在登录时获得 ID - Angular
- elasticsearch - 确定elasticsearch中数据节点和索引的数量
- azure - Azure 应用程序见解 - “依赖项”表中的记录导致混淆
- python - 如何获取在 tkinter 的顶级小部件中输入的值并在主窗口中使用它来显示?
- java - 如何在 Android 中永久保存 aufio 文件?
- php - 将 PGSQL 结果查询复制到 MYSQL 服务器
- javascript - 为什么在 new 时无法创建 Awesomplete JavaScript 对象?
- java - 迄今为止的 MongoDB 纪元时间戳
- python - PyTorch:如何将相同的随机变换应用于多个图像?