整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML5简单教学第一章(第三节)

HTML5简单教学第一章(第三节)

家好,我是新媒之声广告工作室的大白,今天给大家带来的是HTML5简单教学第一章(第三节)。

今天给大家带来的东西比较少;

标签分类:

1.块标签

#独占一行,自动换行

2.行标签

#自己有多宽占多宽

HTML <p> 标签

<p> 标签表示文本的段落,段落通常在可视媒体中表示为文本块,是块级元素。

<p> 标签定义段落。

<p> 元素会自动在其前后创建一些空白。浏览器会自动添加这些空间,您也可以在样式表中规定。

注意:<p> 标签与 <br> 标签都有换行的意思,不同的是 <p> 标签是大换行(分段),<br> 标签是小换行。


在HTML 4.01 与 HTML5中的差异

HTML 4.01中标签的 align 属性已经废弃,HTML5不支持该属性。

HTML <h1> - <h6> 标签

<h1> - <h6> 标签用来定义 HTML 标题,表示了 HTML 网页中六个级别的标题。您可以通过下面的这个实例来看看每个级别的标题有什么区别:

标签定义及使用说明

<h1> - <h6> 标签被用来定义 HTML 标题。

<h1> 定义重要等级最高的标题。<h6> 定义重要等级最低的标题。


HTML 4.01 与 HTML5之间的差异

在 HTML 4.01 中,<h1> - <h6> 的 "align" 属性已被废弃。在 HTML 5 中,<h1> - <h6> 元素的 "align" 属性不被支持。请使用 CSS 来排列元素。

HTML <i> 标签

<i> 标签中的文本显示为斜体,代表一定范围的文本具有特别的语义。

标签定义及使用说明

<i> 定义与文本中其余部分不同的部分,并把这部分文本呈现为斜体文本。

<i> 标签被用来表示科技术语、其他语种的成语俗语、想法、宇宙飞船的名字等等。

在没有其他适当语义的元素可以使用时,请使用 <i> 元素。其他语义的元素如下:

  • <em> (被强调的文本)

  • <strong> (重要的文本)

  • <mark> (被标记的/高亮显示的文本)

  • <cite> (作品的标题)

  • <dfn> (一个定义项目)

提示:<i> 标签一定要和结束标签 </i> 一起使用。


HTML 4.01 与 HTML5之间的差异

在 HTML 4.01 中,<i> 标签呈现斜体的文本。然而,在 HTML5 中没有必要这么做,可以使用样式表来格式化 <i> 元素中的文本。

HTML <u> 标签

<u> 标签可以用来对标签内的文本实现下划线样式

标签定义及使用说明

<u> 标签定义与常规文本风格不同的文本,像拼写错误的单词或者汉语中的专有名词。


提示和注释

提示:请尽量避免使用 <u> 为文本加下划线,用户会把它混淆为一个超链接。

注释:HTML5 规范建议开发者尽量使用其他元素替代 <u> 元素。


HTML 4.01 与 HTML5之间的差异

在 HTML 中,<u>元素 已废弃(<u> 元素被用来定义下划线)。

HTML5 中重新定义了 <u> 元素,它定义与常规文本风格不同的文本,像拼写错误的单词或者汉语中的专有名词。

HTML <font> 标签 - HTML5 不支持

<font> 标签的使用示例如下所示,该标签已经过时,因此我们不建议您使用该标签。

标签定义及使用说明

HTML5 不支持 <font> 标签。请用 CSS 代替。

在 HTML 4.01 中,<font> 元素已废弃。

<font> 标签规定文本的字体、字体尺寸、字体颜色。


提示和注释

提示:请使用 CSS 来定义文本的字体、尺寸、颜色。


HTML 4.01 与 HTML5之间的差异

HTML5 不支持 <font> 标签,HTML 4.01 已废弃 <center> 标签。

谢谢大家的观看,如果需要今天课程的源代码和ppt可以私信给我,我会免费发给你,最好使能够关注小编一下。

家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

今天给大家带来的主题是HTML5 和word的互相转化,话不多说,直接进入正题!

1.HTML转化为Word之 html-docx-js

1.1 什么是 html-docx-js

html-docx-js 是一个非常小的库,能够将 HTML 文档转换为 Microsoft Word 2007 及更高版本使用的 DOCX 格式。 html-docx-js 设法使用称为“altchunks”的功能在浏览器中执行转换。 简而言之,它允许以不同的标记语言嵌入内容。 开发者使用 MHT 文档将嵌入内容发送到 Word,因为它允许处理图像。 Word 打开此类文件后,会将外部内容转换为 Word Processing ML(这是 DOCX 文件的标记语言的调用方式)并替换引用。

Microsoft Word for Mac 2008 不支持 Altchunk,LibreOffice 和 Google Docs 也不支持 Altchunk。

关于 html-docx-js 库有几点需要说明:

  • html-docx-js 适用于任何支持 Blob 的现代浏览器(无论是本机还是通过 Blob.js)。它在 Google Chrome 36、Safari 7 和 Internet Explorer 10 上进行了测试,也适用于使用 Buffer 而不是 Blob 的 Node.js(在 v0.10.12 上测试)。
  • html-docx-js 仅支持内联的 base64 图像(通过 DATA URI 获取)。 但动态转换常规图像(来自静态文件夹)很容易,开发者可以自行完成。

目前 Mammoth 在 Github 上通过 MIT 协议开源,有超过 1k 的 star、0.3k 的 fork、0.7k 的项目依赖量、NPM 周平均下载量 9k,是一个值得关注的前端开源项目。

1.2 如何使用 html-docx-js

var converted=htmlDocx.asBlob(content);
saveAs(converted, "test.docx");

asBlob 可以采用其他选项来控制文档的页面设置:

  • orientation:横向或纵向(默认)
  • margins:边距大小图
  • top:数字(默认:1440,即 2.54 厘米)
  • right:数字(默认:1440)
  • bottom:数字(默认:1440)
  • left:数字(默认:1440)
  • header:数字(默认值:720)
  • footer:数字(默认值:720)
  • gutter:数字(默认值:0)

比如下面的例子:

var converted=htmlDocx.asBlob(content, {
  orientation: "landscape",
  margins: { top: 720 },
});
saveAs(converted, "test.docx");

需要注意的是,开发者需要传递完整、有效的 HTML(包括 DOCTYPE、html 和 body 标签)。 这可能不太方便,但可以让开发者在样式标签中包含 CSS 规则。

html-docx-js 作为独立”Browserify 模块(UMD)分发。 开发者可以将其作为 html-docx 要求。 如果没有可用的模块加载器,它将把自己注册在 window.htmlDocx。

2.mammoth.js

2.1 什么是 mammoth.js

Mammoth.js 旨在转换 .docx 文档,例如:由 Microsoft Word、Google Docs 和 LibreOffice 创建的文档,并将其转换为 HTML。 Mammoth 的目标是通过使用文档中的语义信息并忽略其他细节来生成简单且干净的 HTML。 例如,Mammoth 将任何具有标题 1 样式的段落转换为 h1 元素,而不是尝试精确复制标题的样式(字体、文本大小、颜色等)。

.docx 使用的结构与 HTML 的结构之间存在很大的不匹配,这意味着对于更复杂的文档来说,转换不太可能完美。 如果开发者仅使用样式来对文档进行语义标记,那么 Mammoth 效果最佳。

Mammoth.js 目前支持以下功能:

  • 标题、列表、评论
  • 从自己的 docx 样式到 HTML 的可定制映射。 例如,可以通过提供适当的样式映射将 warningHeading 转换为 h1.warning。
  • Tables: 当前忽略表格本身的格式(例如:边框),但文本的格式与文档其余部分的格式相同。
  • 脚注和尾注、图片、粗体、斜体、下划线、删除线、上标和下标、链接、Line、Line breaks
  • 文本框:文本框的内容被视为出现在包含文本框的段落之后的单独段落。

Mammoth 在众多平台可用,比如:Python、WordPress、Java/JVM、.NET 等等。目前 Mammoth 在 Github 上通过 BSD-2-Clause 开源,有超过 4.1k 的 star、0.5k 的 fork、4.4k 的项目依赖量、NPM 周平均下载量 76k,是一个值得关注的前端优质开源项目。

2.2 使用 mammoth.js

以文档转换为例。

Mammoth 允许在转换文档之前对其进行处理。 例如,假设该文档尚未进行语义标记,但开发者知道任何居中对齐的段落都应该是标题,则可以使用 transformDocument 参数来适当地修改文档:

function transformElement(element) {
  if (element.children) {
    var children=_.map(element.children, transformElement);
    element={ ...element, children: children };
  }
  if (element.type==="paragraph") {
    element=transformParagraph(element);
  }

  return element;
}
function transformParagraph(element) {
  if (element.alignment==="center" && !element.styleId) {
    return { ...element, styleId: "Heading2" };
  } else {
    return element;
  }
}
var options={
  transformDocument: transformElement,
};

TransformDocument 的返回值在 HTML 生成期间使用。同时,上面的代码可以使用 mammoth.transforms.paragraph 函数进行优化,比如:

function transformParagraph(element) {
  if (element.alignment==="center" && !element.styleId) {
    return { ...element, styleId: "Heading2" };
  } else {
    return element;
  }
}
var options={
  transformDocument: mammoth.transforms.paragraph(transformParagraph),
};

或者,如果开发者希望已明确设置为使用等宽字体来表示代码的段落:

const monospaceFonts=["consolas", "courier", "courier new"];

function transformParagraph(paragraph) {
  var runs=mammoth.transforms.getDescendantsOfType(paragraph, "run");
  var isMatch=runs.length > 0 &&
    runs.every(function (run) {
      return run.font && monospaceFonts.indexOf(run.font.toLowerCase()) !==-1;
    });
  if (isMatch) {
    return {
      ...paragraph,
      styleId: "code",
      styleName: "Code",
    };
  } else {
    return paragraph;
  }
}
var options={
  transformDocument: mammoth.transforms.paragraph(transformParagraph),
  styleMap: ["p[style-name='Code']=> pre:separator('\n')"],
};

关于 Mammoth 库的更多用法,更多 API 示例可以参考文末资料,本文不再过多展开。

3.本文总结

本文主要和大家介绍 HTML5 和word互转的两个开源库,分别为:html-docx-js、mammoth.js。相信通过本文的阅读,大家对 html-docx-js、mammoth.js 会有一个初步的了解。

因为篇幅有限,关于 html-docx-js、mammoth.js 的更多用法和特性文章并没有过多展开,如果有兴趣,可以在我的主页继续阅读,同时文末的参考资料提供了大量优秀文档以供学习。最后,欢迎大家点赞、评论、转发、收藏,您的支持是我不断创作的动力。

参考资料

https://github.com/evidenceprime/html-docx-js

https://github.com/mwilliamson/mammoth.js

https://www.npmjs.com/package/html-docx-js

https://www.npmjs.com/package/mammoth

https://www.tutorialswebsite.com/export-html-to-word-document-with-javascript/

https://www.vecteezy.com/vector-art/136754-free-vector-documents

一段带有已删除部分和新插入部分的文本:

<p>My favorite color is <del>blue</del> <ins>red</ins>!</p>


浏览器支持

所有主流浏览器都支持 <del> 标签。


标签定义及使用说明

<del> 标签定义文档中已删除的文本。


提示和注释

提示:您也可以看看 <ins> 标签如何标记先插入的文本。

提示:<del> 和 <ins> 一起使用,描述文档中的更新和修正。浏览器通常会在已删除文本上添加一条删除线,在新插入文本下添加一条下划线。


HTML 4.01 与 HTML5之间的差异

无。


属性

属性描述
citeURL规定一个解释了文本被删除的原因的文档的 URL。
datetimeYYYY-MM-DDThh:mm:ssTZD规定文本被删除的日期和时间。

全局属性

<del> 标签支持 HTML 的全局属性。


事件属性

<del> 标签支持 HTML 的事件属性。

如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!