You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

276 lines
5.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

`html` 中引用 `html``html片断` 的方式
============================================
在静态站点的制作中,有些像通用菜单、头部、页脚等是统一的,如果在各页页中都复制一分对于修改是个空难级影响。
以下是几种在html中引用另一个 html 文件的方式。
本示例中被引用的html片断文件为 import.html方便起见引用和被引用的html文件牌同一目录(当然也可以不同)。
## 纯 `html` 方式
+ 使用ifreame 标签
``` html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>使用iframe标签引用html文件</title>
<base href="/" />
</head>
<body>
<div>
其它内容
</div>
<!-- 使用iframe标签引用html文件 -->
<iframe
<!-- 各种属性 -->
name="content_frame"
width="100%"
height="30px"
marginwidth = 0
marginheight=0
src="import.html" >
</iframe>
<div>
其它内容
</div>
</body>
</html>
<!-- 优点:兼容性好,方便快捷 -->
<!-- 缺点:浏览器当两个独立网页,样式和调试不太方便 -->
````
+ 使用object 标签
``` html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>使用 "object标签" 引用html文件</title>
</head>
<body>
<div>
其它内容
</div>
<!-- 使用 "object标签" 引用html文件 -->
<object
<!-- 各种属性 -->
style="border:0px"
type="text/x-scriptlet"
data="import.html"
width=100%
height=30 >
</object>
<div>
其它内容
</div>
</body>
</html>
<!-- 优点:兼容性好,方便使用-->
<!-- 缺点:样式不好调试、不是专用标签-->
````
+ 使用link [重点推荐]
``` html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>使用iframe标签引用html文件</title>
<base href="/" />
</head>
<body>
<div>
其它内容
</div>
<!-- 使用iframe标签引用html文件 -->
<iframe
<!-- 各种属性 -->
name="content_frame"
width="100%"
height="30px"
marginwidth = 0
marginheight=0
src="import.htm" >
</iframe>
<div>
其它内容
</div>
</body>
</html>
<!-- 优点:
-->
<!-- 缺点:
-->
````
+ 使用import 引入
``` html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>使用iframe标签引用html文件</title>
<base href="/" />
</head>
<body>
<div>
其它内容
</div>
<!-- 各种属性 -->
<iframe
<!-- 各种属性 -->
name="content_frame"
width="100%"
height="30px"
marginwidth = 0
marginheight=0
src="import.htm" >
</iframe>
<div>
其它内容
</div>
</body>
</html>
<!-- 优点:
-->
<!-- 缺点:
-->
````
+ bootstrap 的 panel 组件,或者 easyui 的 window 组件
``` html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>使用iframe标签引用html文件</title>
<base href="/" />
</head>
<body>
<div>
其它内容
</div>
<!-- 各种属性 -->
<iframe
<!-- 各种属性 -->
name="content_frame"
width="100%"
height="30px"
marginwidth = 0
marginheight=0
src="import.htm" >
</iframe>
<div>
其它内容
</div>
</body>
</html>
<!-- 优点:
-->
<!-- 缺点:
-->
````
## 使用 js 配合
+ 原生 js
``` html
<!-- 大体有以下几种方式
1 使用 document.createElement() 方法创建一个指定的 HTML 元素,然后使用 appendChild() 方法将它添加到指定的父节点。
2 使用 innerHTML 属性直接向指定的元素插入 HTML 代码。
3 使用 insertAdjacentHTML() 方法在指定的位置插入 HTML 代码。
-->
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>使用iframe标签引用html文件</title>
<base href="/" />
</head>
<body>
<div>
其它内容
</div>
<!-- 各种属性 -->
<iframe
<!-- 各种属性 -->
name="content_frame"
width="100%"
height="30px"
marginwidth = 0
marginheight=0
src="import.htm" >
</iframe>
<div>
其它内容
</div>
</body>
</html>
<!-- 优点:
1、原生兼容性好
2、不需要引入第三方库
-->
<!-- 缺点:
1、需要一个唯一的父元素
2、代码开发没有使用框架方便
-->
````
+ 使用jquery
``` html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>使用iframe标签引用html文件</title>
<base href="/" />
</head>
<body>
<div>
其它内容
</div>
<!-- 各种属性 -->
<iframe
<!-- 各种属性 -->
name="content_frame"
width="100%"
height="30px"
marginwidth = 0
marginheight=0
src="import.htm" >
</iframe>
<div>
其它内容
</div>
</body>
</html>
<!-- 优点:
1、兼容性最好几乎能兼容所有浏览器(jquery有多个版本老版能兼容到IE6,甚至IE5)
2、开发方便快捷
-->
<!-- 缺点:
1、需要引用jquery库并且注意版本(版本问题比较小,主要是版本可能和功能版本有冲突)
-->
````
## 动态网页技术
比如 asp.net webform、mvc、razor、blazor等技术中都有一个类似"模板页"的概述,可以很方便的实现。