html 框架 iframe

1 为什么需要iframe

frameset是把多个已经有页面整合成一个新的页面,这个新页面并非普通页面:只有frameset,没有body。

能否在一个普通页面里嵌套另外一个页面?能。

iframe可以在一个普通页面的指定位置嵌套另一个页面。


2 语法

<iframe src="页面地址" >

可以页面1的指定位置放入页面2。


3 示例

准备工作

d10-iframe-p1.html页面内容如下

<body>
    <div>页面1  AAAA</div>
    <div>页面1  BBBB</div>
    <div>页面1  CCCC</div>
    <div>页面1  DDD</div>
</body>

d10-iframe-p2.html页面内容如下

<body>
    <div style="width: 300px;height: 200px;background-color: #00f;color:#fff;">页面2</div>
</body>

现在需要在d10-iframe-p1.html的第3行 "页面1 CCCC"后放入 d10-iframe-p2.htm页面的内容。

p1.html页面修改如下

<body>
    <div>页面1  AAAA</div>
    <div>页面1  BBBB</div>
    <div>页面1  CCCC</div>
    <iframe src="d10-iframe-p2.html"></iframe>
    <div>页面1  DDD</div>
</body>

img

iframe默认样式有点丑,接一来进一步美化。


4 iframe常用属性

iframe常用属性 说明
src 嵌入页面地址。
width 宽度。
height 高度。
frameborder 默认显示边框,丑。设置为0取消。
scrolling 当宽高超出时,会显示滚动条。设置为no取消。
name 设置名称,类似与frame的name,与链接a标签的target配合使用。

iframe的宽高:并不会根据被嵌入页面的宽高来自动调整宽高。后续可以通过JavaScript来做自适应。这里我们先通过width与height设置宽度。

<iframe src="d10-iframe-p2.html" width="300px" height="200px" frameborder="0" scrolling="no"></iframe>

优化后样式

img


5 通过iframe实现后台管理首页布局

打开时默认效果

img

当点击页面1或页面2的链接时,下方显示相应页面。

img


后台管理页面布局特点

用户切换菜单时,整个页面好像并没有跳转, 用户体验良好。


具体实现

三个基础页面:d09-welcome,d09-page1.html,d09-page2.html,代码略。

"后台首页" d10-iframe-p3.html代码

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" >
    <title>html iframe 例子 | 关关教程</title>
</head>

<body>
    <h1>导航菜单</h1>
    <div><a href="d09-page1.html" target="frameMain">页面1</a></div>
    <div><a href="d09-page2.html" target="frameMain">页面2</a></div>

    <div>
        <iframe src="d09-welcome.html" name="frameMain" width="300px" height="200px" frameborder="0" scrolling="no"></iframe>
    </div>
</body>

</html>

链接的target属性与iframe的name属性一致,表示点击链接时,在iframe的位置打开新页面。