如何用CSS实现DIV的高宽自适应浏览器大小

本文详细介绍了HTML和CSS在网页布局中的应用,包括表格样式、背景颜色设置、文本对齐方式,以及如何通过CSS实现复杂布局效果。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>www.zishu.cn</title>
<style>
<!--
html {_padding-top:100px;}
html,body { height:100%; overflow:hidden;}
body{margin:0;padding:0; list-style:none;}
#header{
position:absolute; top:0;
width:100%;
height:100px;
background-color:#0CF;
}
#left {
position:absolute; top:100px; right:auto; left:0; bottom:0;
width:200px;
overflow:auto;
_height:100%;
background-color:#9C0;
}
#middle {
position:absolute; top:100px; right:auto; left:200px; bottom:0;
width:500px;
overflow:auto;
_height:100%;
background-color:#999;
}
-->
</style>
</head>
<body>
<div id="header">header</div>
<div id="left">
<table style="border:1px solid #F00; height:100%; width:100%">
<tr>
<td>
left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br

/>left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br />left<br

/>left<br />left<br />left<br />
</td>
</tr>
</table>

</div>
<div id="middle">
middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br

/>middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br

/>middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />middle<br />
</div>
</body>
</html>

 

### 实现 iframe 高度和宽度自适应的方法 为了使 `iframe` 的高度和宽度能够根据其内部内容自动调整,可以通过 JavaScript 动态修改 `iframe` 的尺寸。下面介绍几种常见的方式。 #### 使用纯 CSS 解决方案 对于某些场景下简单的自适应需求,仅通过 CSS 即可实现基本功能: ```css iframe { width: 100%; min-height: 300px; } ``` 这种方式适用于不需要精确控制 iframe 内部内容显示的情况[^2]。 #### 结合 JavaScript 和 CSS 进行更精准的控制 当需要更加灵活地处理不同类型的内嵌资源时,则需借助于 JavaScript 来获取并设置合适的尺寸参数: ```javascript function adjustIFrameSize() { const frame = document.querySelector('#yourIframeId'); try{ let bodyHeight = frame.contentWindow.document.body.scrollHeight; let htmlHeight = frame.contentWindow.document.documentElement.scrollHeight; let maxHeight = Math.max(bodyHeight, htmlHeight); frame.style.height = `${maxHeight}px`; } catch(e){ console.error('Failed to resize iframe:', e.message); } } // 页面加载完成后执行一次初始化调整 window.addEventListener('load', () => {adjustIFrameSize();}); // 当窗口大小发生变化时重新计算 iframe 尺寸 window.onresize = function(event){adjustIFrameSize();} ``` 此脚本会尝试读取 iframe 中的内容文档的高度,并据此更新 iframe 的样式属性来匹配实际所需的空间[^1]。 另外一种情况是希望维持特定的比例关系(例如常见的 16:9),这时可以在父级容器中应用 padding-top 技巧配合 position:absolute 定位 iframe 元素完成响应式的比例保持效果: ```html <div class="videoWrapper"> <iframe src="" frameborder="0"></iframe> </div> <style> .videoWrapper { position:relative; width: 100%; /* 或者其他百分比 */ padding-top: 56.25%; /* (9 / 16) * 100% */ height: 0; } .videoWrapper iframe { position: absolute; top: 0; left: 0; bottom: 0; right: 0; border: none; } </style> ``` 这种方法利用了外层 div 的 padding-top 属性创建了一个占位空间,确保即使在不同的屏幕分辨率下也能维持固定的纵横比。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值