如何模块化静态HTML文件
How I can modularize static HTML file?
我是一名前端开发人员。当我编写html
代码时,我会通过复制和粘贴(页眉部分、页脚部分等)来重复自己的很多操作。
如何编写模块化的html
文件?像单独的header.html
和footer.html
,然后在index.html
中调用。。。与Ruby on rails
中的erb
相同?(我不喜欢jade
lang)
在PHP中,我们会做这样的事情:
index.php
<?php
include 'inc/head.inc.php'; //DOCTYPE and <head> stuff
include 'inc/header.inc.php'; //NAV or other top-of-page boilerplate
?>
<div id="uniqueDIV">
//Your unique page-specific divs can go here
</div>
<?php include 'inc/footer.inc.php'; ?>
因此,在head.inc.php
文件中,您只需要页面文件中常见的DOCTYPE和<head>
部分。
在Ruby中,似乎等效的指令类似于:
load "inc/head_inc.rb" -- OR --
require_relative "inc/head_inc.rb"
https://practicingruby.com/articles/ways-to-load-code
另一种选择是使用一点js/jQuery来填充文档的各个部分。如果你没有PHP,这是第二好的选择它不如PHP优化,因为js/jQ代码将在页面完全呈现后运行,这可能会在代码出现之前造成微小(但明显)的延迟
例如:
html
<div id="navbarDIV"></div>
js/jQuery:
<script type="text/javascript">
$(function(){
$('#navbarDIV').load( 'inc/navbar.inc.html' );
});
</script>
请注意,您需要加载jQuery才能使用上面的代码。简单如<head>
:中的这一行
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
jsFiddle演示
最后注意:script标记可以作为外部文件包含在<head>
中,也可以与html的其余部分一起放置在文档中的任何位置。只要管用。但是<head>
作为外部文件,或者主体中的最后一个元素(也作为外部文件)是优选的。
最后一点:股份有限公司的命名惯例是不需要的,这只是我自己的实践。包含文件可以命名为head.html
或head.php
等。
您可以考虑使用类似Swig的东西,它不需要服务器(您可以在本地编译模板)。
Swig的语法很像Mustache或Handlebars,它使用大括号,在普通HTML中工作,所以你可以保留你想要的HTML语法(不像Jade)。
要将HTML分离为要重用的文件,可以检查"模板继承"。您还可以看到文件包含和文件导入。
这里有一个小例子:
{% include "./header.html" %}
<div id="body">Hello world</div>
{% include "./footer.html" %}
我使用gulp,并且我想要将文件编译为标准html文件的工具。如玉Sajad Abedi
为此,您可以使用gulp-swig并在任务中本地构建模板。
我使用了EJS,这很方便。你可以试一试。
对于HTML
文件,没有重用HTML
零件的标准方法。您必须在模板系统中使用。
但是erb
是一个模板系统,可以处理它。请参阅关于"将一个erb文件包含到另一个"的堆栈溢出回答。
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 导入jQuery脚本获胜'我不处理html文件
- 生成pdf或其他非html文件时的错误处理
- 如果使用javascript函数屏幕太小,我该如何更改HTML文件的背景色
- html文件中的script标记根本不起作用
- 从单独的html文件预览Javascript文本
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- Android在webview中加载带有javascript的html文件,得到Uncaught ReferenceEr
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 当我在浏览器中打开HTML文件时,javascript不起作用
- 如何在另一个html文件的框架中包含图像
- 压缩静态HTML文件中的JS和CSS
- 从HTML文件中的TypeScript(.ts)获取值
- 以HTML文件中的编码形式脱机存储图像
- ionic幻灯片框中的每张幻灯片都有不同的HTML文件
- 加载具有特定CSS的HTML文件
- 使用Gulp手柄部分编译为单个HTML文件
- 使用javascript检查服务器上是否存在html文件
- 在本地启动HTML文件
- javascript从选中的复选框中检索输入值,并在同一网页中显示多个html文件