首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iframe的高度自适应_div自适应高度

而如果iframe要切换页面,或者被包含页面要做DOM动态操作,这时候,就需要程序去同步iframe高度和被包含页的实际高度了。...传统做法大致有两个: 方法一,在每个被包含页在本身内容加载完毕之后,执行JS取得本页面的高度,然后去同步父页面的iframe高度。...方法二,在主页面iframe的onload事件中执行JS,去取得被包含页的高度内容,然后去同步高度。...如果在主窗口做一个Interval,不停的来获取被包含页的高度,然后做同步,是不是即方便,又解决了JS操作DOM的问题了呢?答案是肯定的。...这个现象在不同被包含页面之间做切换也会发生,当从高的页面切换到矮页面的时候,取到的高度还是那个高的值。

7.1K40

div高度设置100%无效的问题

今天遇到一个问题,给div设置高度 height: 100%;却没有生效,在f12审查元素的时候可以看到高度字占据了半屏,并没有占据100%全屏,也就是说,div高度设置100%无效。 ?...这个问题该怎么解决? 记录一下解决办法: 找到div的父级元素,并且给父级元素手动设置一个高度,这个问题就解决了。...错误原因,根本在于没有浏览器是计算元素高度和宽度的原理: Web浏览器在计算有效宽度时会自动将页面内容平铺填满整个横向宽度。...但是浏览器根本就不计算内容的高度, 当一个元素的高度设定为百分比高度时, 无法根据获取父元素的高度,也就无法计算自己的高度。...原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1 90后前端妹子,爱编程,爱运营,文艺与代码齐飞,魅力与智慧共存的程序媛一枚。

5.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    响应式web布局中iframe的自适应

    困境           在响应式布局中,我们应该小心对待iframe元素,iframe元素的width和height属性设置了其宽度和高度,但是当包含块的宽度或高度小于iframe的宽度或高度时,会出现...这样溢出的iframe会破坏页面的布局。我们可以采用一种方法让iframe元素也具有响应性,拭目以待。 方案           iframe元素本身并无法伸缩,除非通过js显示的设置其宽度。...但是我们可通过一个iframe-container元素来包裹iframe,同时让iframe-container元素的宽度充满包含块的宽度,并且根据iframe的长宽比,设置iframe-container...其实,这种方式的精髓就在于设置iframe-container元素的padding-bottom属性,设置该属性的目的在于变相的设置元素的高度。...因为给padding-bottom设置百分比,是相对于父元素的width而言的,如果对height属性设置百分比,则相对于父元素的height,而父元素的height值我们通常使用默认的auto,因此会出现子元素

    2.5K120

    真正解决iframe高度自适应问题

    1.前言 解决iframe高度自适应问题有两种方法 1.pym 2.手动设置iframe的高度 本文主要是总结第二种实现方式,因为第一种pym.js插件我没用懂 如果使用iframe时,遇到以下的需求...(子)网页的文档高度,然后把值附给父页面的iframe的height。...,高度可以自适应的变高,但在变低时,会发现父页面的高度并没有向我们想象的随着子页面降低,导致底部留有大面积空白的问题,请继续往下看 3.文档声明的重要性 将子页面的文档声明改为就好了 的变化,(细节可以F12看一下iframe种的html和body跟div的高度关系) 问题或留言加深本文的深度,例如html5已经不需要声明DTD,但是我解决这个问题不得不改一下DOCTYPE,退化到html4,为什么在html5中子页面html和body的高度不是由内部的内容决定的

    5.4K30

    一文带你响应式网页设计入门

    我们设置main标签设置为flex-wrap: wrap,这个设置为允许其内部子节点在父节点中换行, flex-basis: 100% 是指我们的div节点的宽度是相对于父节点宽度的100%(图1)。...适用于桌面设备的样式,我们利用与上一节中的示例类似的媒体查询将容器main元素设置为flex-wrap: nowrap,这样可以确保子元素不会换行,通过在媒体查询中设置div为flex-basis: 33%...XNDU0NDIwNDY4OA==' frameborder=0 'allowfullscreen'>iframe> div> 在此示例中,我们将视频嵌入为iframe和一个div带有videoWrapper...position: relative 容器元素上的子元素允许子元素利用相对于其的绝对位置。...最后,宽度和高度为100%会使子级iframe元素成为其父级的100%。父级.videoWrapper完全控制建立此宽高比布局。

    4.8K20

    那些年,我们被耍过的bug——haslayout

    它决定了一个对象(就是一个标签div、li等)在内容中如何显示、与周围对象的位置关系、以及怎样响应程序或用户产生的事件。 这个属性可以被一些css强制激活。...上图的例子中,三个 div 各包含一个 p 元素,三个 div 及其包含的 p 元素都有顶部和底部的外边距,但只有第三个 div 的边距没有与它的子元素 p 的外边距折叠。...2.可以包含浮动的子元素,即计算高度时包括其浮动子元素 效果如图: ?...上图的例子中,有两个 div ,它们各包含一个设置了浮动的 p 元素,但第一个 div 实际被浏览器判断为没有高度和宽度,即高度为 0 ,上下边框重叠在一起。...而第二个 div 使用 zoom: 1 触发了 hasLayout ,可以包含浮动元素,因此能正确表现出高度,其边框位置也正常了。

    68510

    javascript基础-3

    处于全屏模式的窗口必须同时处于剧院模式。 height=pixels 窗口文档显示区的高度。以像素计。 left=pixels 窗口的 x 坐标。以像素计。...,但包含滚动条,兼容:ie9/10、chrome、firefox; 后者显示的是,屏幕的高度,同常与屏幕宽/高一致,兼容:ie7/8/9/10、chrome、firefox; 、Navigatar...运用: div> xx div> div> iframe src="YY.html" framborder="0"...name="NAME名" >div> 即:使用相同的name,即可将两者联系起来,在同一界面中,无需重复iframe部分,至改变内容即可; 早期的iframe主要用于导航栏(navigator...早期主要用于测试可疑软件等); 引用第三方内容; 独立的交互内容; 需要保持独立焦点和历史管理的子窗口(在ajax中会面临用户无法退回上一步的情况,可以用iframe解决,ajax下面会说) 举例,

    1.1K20

    Vue隐藏技能:运行时渲染用户写入的组件代码!

    }, } }, }, 除了错误处理,还需解决一下 iframe 的一些特性,比如边框,滚动条,默认宽高,其中比较棘手是 iframe 高度有默认值,并不会随着 iframe 的内容自适应高度...高度自适应的解决方案是通过MutationObserver观测 iframe 的 body 变化,在回调中计算挂载点(第一个子元素)的高度,然后再修改 iframe 本身的高度。...之所以没有直接使用 body 的高度,是因为 body 有默认的高度,当被渲染的组件高度小于 body 高度时,直接使用 body 的高度是错的。...核心代码如下 mounted() { // 通过观察器观察iframe的body变化后修改iframe的高度, // 使用iframe后垂直的margin重合效果会丢失 const observer...在处理主域将组件内容通过postMessage传给 iframe 时,碰到了一个棘手的问题,postMessage 对可传递的数据有限制,具体的限制可查看 The structured clone algorithm

    3.7K10

    动态监听DOM元素高度变化

    经过处理之后,确实在容器高度小于指定高度的时候,“展示更多” 按钮不会展示,超过最大值之后,会将该按钮展示出来, 但是也遇到了一个问题,操作按钮是有高度的,如果我们的内容高度介于最大高度 - 按钮高度...既然 window 可以监听到 resize 事件,那么我们就可以利用 iframe 来达到同样的效果,具体做法就是在容器里面嵌套一个隐藏的高度为 100% 的 iframe,通过监听他的 resize...是用来动态监听content高度的变化的 */}        iframe title={IFRAME_ID} id={IFRAME_ID} ref={ifr} />      div>      ...7、总结 解决问题要尽可能的考虑多种情况,对比多种方案,采取最为可靠的一种方案。 不断学习,多查询资料,你所遇到的问题基本上前人都已经踩过坑了。...监听 DOM 元素的高度变化,可以采用内嵌 iframe 的方式来解决。 紧追技术前沿,深挖专业领域 扫码关注我们吧!

    5K30

    前端:跨域

    身份凭证问题(Credentials) 5.6. 响应头获取问题(response->headers) 5.7. CORS 相关 HTTP 头部字段 6. Nginx 跨域 7....原理分析:子->父 4.2. iframe + location.hash URL有一部分被称为hash,就是#号及其后面的字符,它一般用于浏览器锚点定位,HTTP请求过程中不会携带hash,所以这部分的修改不会产生...对于简单请求,如果响应头中不包含“Access-Control-Allow-Credentials: true”,浏览器将拒绝此响应。...响应头获取问题(response->headers) 在跨域访问时,XMLHttpRequest 对象的 getResponseHeader() 方法只能拿到一些最基本的响应头:Cache-Control...使用此API,您可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应。

    1.2K20

    不使用定时器实现iframe的自适应高度

    :《不使用定时器实现onhashchange》有点类似 /*****此方法暂时只支持同域下,跨域的问题有待解决****/ 以往要使iframe的高度自适应,往往用定时器在跑,这个方法不错。...而且如果定时器一直开着(只要iframe存在),总归不太好~ 这样就面临着一个问题: 开发者可能需要对DOM进行修改,而iframe的高度如果需要改变,就必须由第三方开发者调用父层的,每一处DOM修改都要调用一次...自适应高度的问题,比较理想的办法是: iframe的onload前使用定时器修改iframe的高度,在onload后清除定时器,然后监听iframe它的document的DOMSubtreeModified...防止iframe页面加载资源过久,页面的高度显示上会有问题。...:再谈iframe自适应高度>> 还有一点要提一下:chrome的某些版本中,子页(iframe)调用parent时会被禁止,而导致页面没有效果,放在web上跑就好了。

    2.2K20
    领券