前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iframe在dark模式下无法透明

iframe在dark模式下无法透明

作者头像
吟风者
发布2023-04-27 15:05:30
7920
发布2023-04-27 15:05:30
举报
文章被收录于专栏:吟风者吟风者

iframe在dark模式下无法透明

先说说起因:

在做项目的时候需要通过iframe链接别的网页,又需要使用自己的框架背景,就像这样:

image.png

中间这块红色区域就是需要嵌入别人的网页的。所以首先就想到iframe了。想到就开干,一顿操作下来,发现这块地方始终是白色。

allowTransparency也设置成true了,背景也设置成透明了。但还是不行。通过各种测试,发现浏览器是可以的,支持透明。那是怎么回事呢?又是对iframe有关的css属性一顿查找,都没能找到原因,难倒跟vue有关?不可能啊?

又开始测试vue,把iframe写到app根节点上,不加入任何其他代码,测试完了过后,发现vue中是可以的,那就奇了怪了,根节点可以的话,那下面就是就是vue-router了,再里面就是layout了,在界面布局layout里面就不行了,难倒跟vue-router有关系?

又开始测试vue-routerlayout,测试完过后,还是没发现问题所在。然后又想到可能是哪个css文件影响了。又去浏览器控制台一个个找。找了半天下来,还是没发现。但某次切换light/dark模式的时候,惊奇的发现了light模式下,iframe透明了。

然后又是一顿找dark模式和light模式之间的差别,并且会影响到iframe透明的元素。通过一个个css文件删除中,最后发现是element-plusdark/css-vars.scss文件产生的影响。

然后又对dark/css-vars.scss文件中的内容一项项的排除,都快郁闷的时候,最终定位到

image.png

这句代码上。

通过试验发现iframecolor-scheme: dark模式下无法透明。那么知道原因,修改起来就简单了,对iframe进行单独的color-scheme设置就好了。

代码语言:javascript
复制
<template>
    <iframe :src="src" border="0" frameborder="0" scrolling="no" width="100%" height="100%" allowtransparency="true"/>
</template>
<script lang="ts" setup>
const props = defineProps({
    src: {
        type: String,
        default: ""
    }
})
</script>

<style lang="scss">
iframe {
  background-color: transparent !important;
  color-scheme: light;//dark模式下无法透明
}
</style>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iframe在dark模式下无法透明
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档