么是HTML / HTM文件?他们相差一个字母有什么区别吗,如何查看或编辑源代码以及如何转换成其他格式,例如DOCX,PDF,JPG 等,针对这些问题编程狮W3Cschool整理以下资料希望能对你有所帮助:
HTM / HTML 文件是超文本标记语言(Hyper Text Markup Language)文件,是 Internet 上的标准网页文件类型。
由于 HTM 文件是纯文本文件,因此它们仅包含文本(例如您现在正在阅读的内容)以及对其他外部文件的文本引用(例如本文中的配图)。
HTM 和 HTML 文件还可以引用其他文件,例如视频,CSS 或 JS 文件。
HTM 与 HTML 没有本质意义的区别,只是为了满足 DOS 仅能识别 8+3 的文件名而已,因为一些老的系统 (win32) 不能识别四位文件名,所以某些网页服务器要求 index.html 最后一个 l 不能省略。MSIE 能自动识别和打开这些文件,但编写网页地址的时候必须是完全对应的,也就是说 index.htm 和 index.html 是两个不同的文件,对应着不同的地址。值得一提的是 UNIX 系统中对大小写敏感,不吻合的话就可能报没有文件或者找不到文件。
任何 Web 浏览器,例如 Edge,Firefox,Chrome,Opera,IE,360 安全浏览器等,都可以打开并正确显示 HTM 和 HTML 文件。换句话说,在浏览器中打开这些文件并“解码(decode)” HTM 或 HTML 文件使其能正确显示。
现在有很多简化编辑和创建 HTM / HTML 文件的工具。一些著名的免费 HTML 编辑器包括 Eclipse ,Komodo Edit 和 Bluefish 。另一个流行的具有许多高级功能的 HTM / HTML 编辑器是 Adobe Dreamweaver ,不过它是收费的。
虽然 Windows 系统自带的记事本等简单的文本编辑器的功能不如专用的 HTM 编辑器那么丰富,但是对 HTM 或 HTML 文件进行简单编辑修改还是可以的。不过,W3Cschool还是建议大家使用专用的编辑器,如 WebStorm、VS Code 等,它具更多专业功能。
这是一个非常简单的 HTML 页面以文本形式显示的示例:
源码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>什么是HTM或HTML文件? - 编程狮(w3cschool.cn)</title>
</head>
<body>
<h1>什么是HTM或HTML文件?</h1>
<p>HTM / HTML 文件是超文本标记语言(Hyper Text Markup Language)文件,是 Internet 上的标准网页文件类型。</p>
<p>由于 HTM 文件是纯文本文件,因此它们仅包含文本(例如您现在正在阅读的内容)以及对其他外部文件的文本*引用*(例如本文中的配图)。</p>
<p>HTM 和 HTML 文件还可以引用其他文件,例如视频,CSS 或 JS 文件。</p>
</body>
</html>
当 Web 浏览器呈现信息时,HTML 文件的源代码被“转换”为真实的网页(尽管源代码已很精简了)。
HTM 文件以特定的语法(规则)构成,以使其中的代码和文本在浏览器中打开时能够正确显示。因此,将 HTM / HTML 文件转换为另一种格式可能会丢失页面上的所有功能。
如果你想要做的是将一个 HTM / HTML 文件转换为方便离线查看的文件,这时图片或 PDF 格式会方便很多。
在 Chrome 中,鼠标右键单击网页,出现的选项菜单中进入 “打印(P)...”(快捷键:CTRL + P) ,在打印选项中选择另存为 PDF,以将窗口中的页面转换为 PDF 文件。Chrome 浏览器的扩展功能也称为“全屏截屏”,可将 Chrome 浏览器中所有打开的 HTM / HTML 文件转换为 PNG 文件。
其他浏览器具有类似的功能,例如 Firefox 的 “另存为 PDF” 加载项。
您也可以使用专门用于 HTM / HTML 进行图像文件转换的网站,例如iWeb2Shot 或Web-capture 。
一个免费的文件转换器可以用来转换并保存 HTM / HTML 文件到您的计算机。如 FileZigZag 是一个免费的文档转换器网站,可将 HTM 转换为RTF,EPS,CSV,PDF 和许多其他格式。
HTM / HTML 文件不能转换为文本文件格式以外的任何格式。例如,HTML 文件永远不能转换为 MP3 音频文件。
HTML / HTM 文件应该很容易打开,因为它们只是任何 Web 浏览器都可以查看的文本文件。如果您的文件没有从上面建议的任何程序打开,则很有可能正在打开的这个文件并非超文本标记语言文件。
某些文件格式使用的文件扩展名与 HTML / HTM 非常相似,但实际上并非相同。一个主要的示例是用于压缩 HTML 电子书文件的 HTMLZ 文件扩展名。有 HTML 文件在内的 HTMLZ 文件,但整个包的格式为 ZIP,不会在 Web 浏览器或文本编辑器打开。
在此示例中,您需要特定的 HTMLZ 文件查看器,例如Caliber 。或者,由于此文件格式实际上是存档,因此您可以使用 7-Zip 之类的文件解压缩器将其打开,然后您可以使用网络浏览器或上述任何其他 HTML 查看器/编辑器打开任何单独的 HTML 文件。
TMLANGUAGE 是另一个可能与 HTML / HTM 文件混淆的文件扩展名。这些实际上是TextMate 用于 macOS 的 TextMate 语言语法文件。
以上就是编程狮W3Cschool为你整理的关于《什么是HTM或HTML文件?如何打开、编辑和转换HTM和HTML文件?》的全部内容,现希望可以帮到你~
载说明:原创不易,未经授权,谢绝任何形式的转载
在最近的前端开发技术的探讨中,htmx经常成为热议的话题。一些人批评它,认为尽管htmx批评现代前端框架过于复杂,但它自己却似乎也是一个复杂的框架。这种看法值得我们深入思考。因为当你将任何第三方代码引入你的项目时,无论是htmx还是其他,都意味着你需要理解并维护它,尤其是在升级的时候。所以,让我们仔细分析一下这种批评,并探究htmx在解决它所宣称的问题时的实际表现。
关于htmx是库还是框架的讨论,常常出现在争论之中。有人辩称htmx实际上是一个库,而不是框架。但这种说法可能不太准确。
“框架”这个词在技术上并没有一个严格的定义,它和“库”之间的界限并不是那么明显。但我们还是可以尝试去区分它们:
这个比喻可能会更加形象:库就像是你添加到机器中的齿轮,而框架则像是一个你通过定制齿轮来控制的预制机器。
这种区别之所以重要,是因为它关系到代码的可替换性。比如,一个使用了CSV解析库的JavaScript服务可以相对容易地更换另一个CSV解析库;但如果是使用了NextJS这样的框架,服务可能就会在整个生命周期中依赖于NextJS,因为大量代码都是基于与NextJS构件的交互编写的。
因此,如果你的服务是基于某个框架构建的,它的有效寿命就与该框架的有效寿命紧密相连。如果那个框架被废弃、不受欢迎或难以维护,那么修改你的项目就会变得越来越困难,直到最后你不得不放弃对它的修改,并可能整个项目被搁置。
这正是人们在问“htmx只是另一个JavaScript框架吗?”时的担忧所在。他们不希望自己投入到一个很快就会过时的系统中,就像过去很多Web开发框架那样。
尽管社区对此存在争议,但从我个人的角度看,htmx在大多数使用场景中显然更接近于一个框架。当然,这也取决于你如何使用它。
当你在项目中使用htmx时,你会在HTML中包含htmx的属性(比如hx-post,hx-target),编写以htmx格式化数据(带有特定请求头)来调用的端点,并从这些端点返回htmx期望的格式化数据(带有hx-*控制的HTML)。所有这些属性、头部和端点的相互作用,创建了一个通过网络请求使元素进入和退出DOM的系统。
如果你在网站的许多网络请求中使用htmx,那么引入htmx对项目结构的影响是显著的,从如何构建前端标记到端点进行的数据库查询,htmx的加入都会对整个应用程序架构产生深远影响。这种影响是框架式的,意味着一旦采用了htmx,就不容易被替换掉。
当然,你也可以选择以更类似于库的方式使用htmx,仅在网页的某些部分添加动态功能。这就像你可以用类似库的方式使用React,但这并不意味着React不是一个框架。实际上,很多开发者在他们的应用中使用htmx,都是在遵循htmx的框架式要求,将其作为构建超媒体应用的一个框架。
使用htmx最有效的方式是顺应它的优势。例如,你当然可以选择发送JSON格式化的表单体,但更简单的做法是使用application/x-www-form-urlencoded格式,并编写一个能接受这种格式的端点。同样地,你也可以编写一个跨多个不同客户端重用的端点,但更简单的做法是将你的数据和超媒体API分离到不同的URL。是的,htmx可以作为库使用,但让它成为你的框架可能会更好。
尽管htmx在很多情况下被当作一个框架使用,但这并不意味着它就是“另一个JavaScript框架”。htmx最大的优势在于它的核心是HTML。
如果你将htmx当作框架来使用,那么从一个角度来看,它确实是基于大约4000行JS实现的。但从另一个更重要的角度来看,htmx并不是:不像React、Svelte、Solid等让你编写JS(X)并将其转换为HTML的框架,htmx让你直接编写HTML。这种方式避免了很多其他框架随着时间推移可能带来的维护问题。
例如,当你想升级或更改某些依赖时,如果你使用的框架与这种更改不兼容,代码库往往会遇到困难。Java是一个著名的例子——有无数行Java代码因为升级Spring太难而永远停留在Java 8。但当你使用htmx时,你不会遇到这个问题,因为htmx是一个零依赖的、客户端加载的JavaScript文件,它不会与你的服务器依赖的任何构建过程或依赖链发生冲突。
另一个重要优势是,浏览器直接渲染HTML,因此使用htmx时不需要任何编译器或转译器。虽然许多htmx用户喜欢用JSX来渲染API响应,但htmx与传统的模板引擎兼容性良好,可以轻松移植到任何语言。Django和Rails在2008年就很流行,到今天仍然如此——htmx也可以与它们无缝集成。htmx的一个反复出现的主题是,它与新旧开发工具都很好地搭配,因为这些工具的共同点是HTML,而htmx正是用来编写HTML的。
将用户的主要工作聚焦在HTML上,而不是JS上,带来了许多优势。这种方式简化了学习过程,使得开发者不必为了追随JavaScript框架的最新趋势而疲于奔命。无论何时
编写你的htmx应用程序,htmx表单的行为始终与普通HTML表单的定义方式大致相同:使用<form>标签。通过htmx添加的网络功能,例如使用PUT请求并控制响应的去向,都是对传统HTML表单的增强,但在验证、输入、标签、自动完成等方面,你依然享受到标准<form>元素的默认行为。
更重要的是,因为htmx仅在网络请求和DOM替换这一狭窄领域扩展了HTML,所以你编写的大多数“htmx”代码实际上就是普通的HTML。这意味着当你遇到可以通过原生HTML元素解决的问题时,你的代码将更加长青。例如,当你需要一个可折叠的div时,如果没有复杂的状态管理机制,你可能会选择使用<details>元素,而不是编写复杂的JavaScript。这种方式使得学习Web开发变得更加友好,因为你的大部分知识将随着HTML的持续有效而保持相关性。
从这个角度来看,htmx更像是JQuery而不是React(实际上,htmx的前身intercooler.js是一个JQuery扩展)。但它在JQuery的基础上做了改进,采用了声明式、基于HTML的接口:JQuery要求你在<script>标签中指定AJAX行为,而htmx只需要一个简单的hx-post属性。
总的来说,虽然htmx可以作为一个框架使用,但它在很多方面都与传统的JavaScript框架不同,它的这些特点使得它更加贴近Web的核心语义——HTML。并且,由于Web的向后兼容性保证,htmx将能够从这些语义的改进中受益,而无需用户进行额外工作。如果你想构建一个持久的网站,这些特性使得htmx成为比许多同代框架更好的选择。
通过这篇对htmx的深入探讨,我们可以看到,htmx在技术上介于库和框架之间,它强调使用HTML来驱动应用的行为,而非依赖复杂的JavaScript结构。这种方法降低了学习曲线,增强了代码的可维护性和可移植性。对于那些寻求简化Web开发流程、减少对复杂JavaScript框架的依赖的开发者来说,htmx提供了一个有趣且有效的选择。
无论htmx被视为库还是框架,其核心价值在于简洁性和对HTML的重视,这使得它在当前的Web开发生态中占有一席之地。这也提醒我们,在追求前沿技术的同时,不应忽视基础技术的力量。在复杂性和现代化的交错中,找到适合自己项目的平衡点,是每个Web开发者的重要任务。
者 | Tim Anderson
译者 | 王强
策划 | Tina
AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!
用于扩展 HTML 规范的 Htmx 项目发布了 2.0 版,这是该项目自 2020 年 11 月 发布 1.0 版以来的第一个主要版本。
Htmx 2.0 取消了对 Internet Explorer 的支持,并将扩展项移出了核心存储库,这样每个扩展都可以按照自己的节奏发布更新了。新版本还删除了一些已弃用的属性,并将 HTTP DELETE 请求更改为使用参数。
新版还加入了一些新特性,包括 htmx.swap() 方法,该方法用新内容替换现有内容。它替换并改进了现有的内部 selectAndSwap() 方法。新版还改进了与 Web 组件、可重复使用的自定义元素的集成。
新版发布博文解释说,为了避免破坏现有项目,1.x 版本将在 NPM(节点包管理器)中继续标注为为“latest”,2.x 还是“next”,直到 2025 年 1 月 1 日为止。迁移到 2.0 版并不困难,但根据迁移指南,用户可能需要做一些工作。
Htmx 是一种新的前端开发方法,侧重于 HTML 而非 JavaScript(尽管它是作为 JavaScript 库实现的)。Htmx 是从之前的一个项目 intercooler.js 发展而来的,后者是由 Htmx 发明者 Carson Gross 于 2013 年创建。这两个项目的灵感都来自于这样一种观点:HTML 的特性一直因为行业对 JavaScript 框架的关注而被限制住了,而 JavaScript 框架的复杂性却一直在增长。Gross 在 2020 年推出 1.0 版时写道:“HTML 导向的 Web 开发范式被抛弃,不是因为超文本是个坏主意,而是因为 HTML 没有足够的表达能力。htmx 旨在解决这个问题,并让你可以使用 Web 的原始超文本模型实现许多常见的现代 Web UI 模式。”
Htmx 现在支持包括异步请求、CSS 转换和使用 HTML 属性的 WebSocket 通信在内的特性。
尽管 Htmx 仍然不如 React 或 Angular 等框架那么出名,但它还是收获了开发人员的赞赏。之前就有人提到,“我绞尽脑汁想找出一个没有过度设计的 js 框架,找到 htmx 让我非常高兴”。另一个人则表示“Htmx 简直太棒了。我们正用它来完成一个重大项目。”
Gross 参与了 Hacker News 上的讨论并回答了问题。有人问他,是否在设法将 Htmx 的一些特性推向 HTML 标准?“我们正在与 Chrome 开发人员讨论这些想法,我持谨慎乐观的态度”,Gross 说。
Htmx 使用的是 XMLHttpRequest,而非更新、更强大的 fetch API。有人问,团队是否考虑过改用 fetch?“看过了,不幸的是 fetch() 和 xhr 有一组不相交的特性(特别是 xhr 的上传进度),所以我们决定不碰它”,Gross 回答道。
该项目在 GitHub 上根据 Zero-Clause BSD 许可开源。
原文链接:
https://devclass.com/2024/06/18/htmx-2-0-released-aims-to-replace-complex-javascript-frameworks-with-easily-understood-html-attributes/
声明:本文为 InfoQ 翻译,未经许可禁止转载。
原文链接:Htmx 2.0 发布:用易懂的 HTML 属性取代复杂 JavaScript 框架_架构_InfoQ精选文章
*请认真填写需求信息,我们会在24小时内与您取得联系。