整合营销服务商

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

免费咨询热线:

HTML5从入门到精通:第二章 HTML详解

章学习目标

  • 了解HTML语法的发展历史
  • 了解HTML语义化
  • 掌握HTML常用标签的基本使用

第一章已经介绍过HTML是一门超文本标记语言,通过HTML标记对网页中的文本、图片、声音等信息进行描述。但是具体如何使用HTML标记对网页中的信息进行控制,没有介绍,本章就将从HTML的历史、语义化、常用标签三个方面详细讲解HTML。

2.1 HTML历史

俗话说“了解历史,才能明白当下,进而展望未来”。所以了解HTML的历史,有利于更好的掌握HTML这门语言。

2.1.1 HTML历史版本

像大多数软件、硬件一样,HTML发展至今,经历了几个版本,新增了许多HTML标记,同时也淘汰了一些标记,接下来介绍HTML在不同时期所对应的一些重要版本,具体如下:

  • 超文本标记语言(第一版)——在1993年6月作为互联网工程工作小组(IETF)工作草案发布(并非标准)
  • HTML 2.0——1995年11月,IETF推荐标准。
  • HTML 3.2——1997年1月14日,W3C推荐标准。
  • HTML 4.0——1997年12月18日,W3C推荐标准。
  • HTML 4.01——1999年12月24日,W3C推荐标准。
  • HTML 5——2014年10月28日,W3C推荐标准。

HTML没有1.0版本,最早的HTML官方规范,是由IETF(Internet Engineering Task Force,因特网工程任务组)发布的HTML 2.0。之后W3C成为HTML语言标准的制定者,发布了3.2、4.0、4.01和5等多个后续重要版本。通常所说的HTML5指的就是5这个最新的版本。

本教材涉及的所有规范及语法,都是严格按照HTML5标准进行讲解的,在后面的章节中还会详细的介绍HTML5及相关内容。

2.1.2 HTML与XHTML关系

在HTML语法上很宽松,如标签和属性可以是大写、小写,或者任意大小写字母的组合,标签可以不闭合等。有些设备很难兼容这些松散的语法,如手机、打印机等,这并不符合标准的发展趋势,因此1999年12月W3C推出了HTML4.01版本后解散了HTML工作组。转而开发XHTML,2000年1月26日发布XHTML1.0。

XHTML是更严谨纯净的HTML版本,XHTML比HTML语法更加规范和严谨,目的是为了实现HMTL向XML过渡,让作者按照统一的风格来编写标签,HTML中标签和属性不区分大小写,而有效的XHTML 文档则要求所有标签和属性必须一律小写,当然还有一些其他的规范和要求,这里不再赘述。XML虽然数据转换能力强,完全可以替代HTML,但是面对互联网上大量基于HTML编写的网站,直接采用XML还为时过早,因此在HTML4.0的基础上,用XML的语法规则对其进行扩展,得到了XHTML。

注:XML指可扩展标记语言(EXtensible Markup Language),用来传输和存储数据。XML语言也可以做为很多语言的基础语言,例如:XHTML、SVG等。

HTML的不同版本对<!DOCTYPE>写法也有不同,具体如下:

HTML4.01中<!DOCTYPE>写法:

	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">

XHTML1.01中<!DOCTYPE>写法

	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">		

HTML5中<!DOCTYPE>写法

	<!DOCTYPE HTML>

因为 HTML 4.01和XHTML1.0 基于 SGML,所以 DOCTYPE 需要对 DTD 进行引用。而 HTML 5 不基于 SGML,因此不需要对 DTD 进行引用,因此HTML5的DOCTYPE写法相当简单。这里建议读者都采用最新的HTML5版本<!DOCTYPE>写法,第一章已经介绍过在DW工具中默认设置不同类型的文档声明。

2.2 什么是HTML语义化

所谓HTML语义化指的是,根据网页中内容的结构,选择适合的HTML标签进行编写。HTML语义化的意义主要有以下几点:

  • 在没有CSS的情况下,页面也能呈现出很好的内容结构、代码结构。
  • 有利于SEO,让搜索引擎爬虫更好的理解网页,从而获取更多的有效信息,提升网页的权重。
  • 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以语义的方式来渲染网页。
  • 便于团队开发和维护,语义化的HTML可以让开发者更容易的看明白,从而提高团队的效率和协调能力。

HTML标签都具备语义化,根据网页展示的内容结构,选择正确的HTML标签进行解析与编码。

注: SEO是指在了解搜索引擎自然排名机制的基础之上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中关键词的自然排名,获得更多的展现量,吸引更多目标客户点击访问网站,从而达到互联网营销及品牌建设的目的。

2.3 HTML常用标签

HTML标签非常多,有些由于历史问题已经废弃,有些属于HTML5中新添加的,这部分H5新标签会在H5章节中给读者讲解,本章主要讲解一些HTML中常用标签的使用。

2.3.1 标题标签

浏览新闻类网页时,经常能看见文章的标题,如图2.1所示。

图2.1 千锋教育新闻标题

图2.1的标题就是用HTML中的标题标签来实现的,HTML中使用<h1>、<h2>、<h3>、<h4>、<h5>、<h6>等标签来定义标题部分,其语法格式如下:

	<hn 属性=“属性值”>标题文本</hn>

接下来通过案例来演示标题标签,如例2-1所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>定义标题</title>
 6 </head>
 7 <body>
 8 <h1>这是一级标题</h1>
 9 <h2>这是二级标题</h2>
 10 <h3>这是三级标题</h3>
 11 <h4>这是四级标题</h4>
 12 <h5>这是五级标题</h5>
 13 <h6>这是六级标题</h6>
 14 </body>
 15 </html>

运行结果如图2.2所示。

图2.2 标题标签显示效果

从上例运行结果可以看出,默认情况下标题文字的显示方式是加粗左对齐,并且从<h1>到<h6>字号递减,如果想改变标题的对齐方式,需要用到align属性,其取值如表2.1。

接下来通过案例来演示标题标签对齐方式的设置及效果,如例2-2所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>定义标题对齐方式</title>
 6 </head>
 7 <body>
 8 <h1>这是一级标题</h1>
 9 <h2 align="left">这是二级标题</h2>
 10 <h3 align="center">这是三级标题</h3>
 11 <h4 align="right">这是四级标题</h4>
 12 </body>
 13 </html>

运行结果如图2.3所示。

图2.3标题对齐方式显示效果

标题很重要,它有利于网页搜索引擎的优化,其中<h1>标题的重要性最高,<h6>标题的重要性最低,一般一个页面只能有一个<h1>,而<h2>~<h6>可以有多个。

2.3.2 段落标签

浏览新闻类网页时,经常能看见文章的段落,如图2.4所示。

图2.4 千锋教育新闻段落

图2.4中的段落在HTML中使用<p>标签实现,用于在网页中把文字有条理地显示出来,其语法格式如下:

	<p 属性=“属性值”>段落文本</p>

接下来通过案例来演示段落标签,如例2-3所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>段落标签</title>
 6 </head>
 7 <body>
 8 <h1 align="center" >扣丁学堂</h1></h1>
 9 <p align="left">扣丁学堂是中国IT培训教育品牌领导者,拥有最新最全的IT培训视频课
 10 程,专注于发布和更新iOS培训、Android培训、HTML5培训、UI培训、PHP培训视频教程,
 11 着力于培养移动互联网人才。</p>
 12 <p align="ri">遇到IT技术难题,就上扣丁学堂学堂。</p>
 13 </body>
 14 </html>

运行结果如图2.5所示。

图2.5 段落标签显示效果

2.3.3 文本格式化标签

文本格式化标签就是针对文本进行各种格式化的标签,例如加粗、斜体、上标、下标等。如表2.2所示。

表2.2中列出了对文本格式化的几种标签,下面将详细介绍这几种标签的使用和效果。

1. <strong>标签

<strong>标签将文本定义为语气更强的强调内容,展示效果为加粗。接下来通过案例演示<strong>标签,如例2-4所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>文本格式化</title>
 6 </head>
 7 <body>
 8 <strong>用良心做教育!</strong>
 9 </body>
 10 </html>

运行结果如图2.6所示。

图2.6 strong标签显示效果

注意:<b>标签的展示效果跟<strong>完全相同,但是<b>标签不具备语义化强调的作用,只是显示加粗效果。

2. <em>标签

<em>标签也是将文本定义为强调的内容,只不过比<strong>标签强调的稍弱些,展示效果为斜体,接下来通过案例来演示<em>标签,如例2-5所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>文本格式化</title>
 6 </head>
 7 <body>
 8 <em>用良心做教育!</em>
 9 </body>
 10 </html>

运行结果如图2.7所示。

图2.7 em标签显示效果

注意:<i>标签的展示效果跟<em>完全相同,但是<i>标签不具备语义化强调的作用,只是显示斜体效果。

3. <sup>和<sub>标签

<sup>标签用于将文本定义为上标文本,<sub>标签用于将文本定义为下标文本,接下来通过案例来演示<sup>和<sub>标签,如例2-6所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>文本格式化</title>
 6 </head>
 7 <body>
 8 <p>a<sup>2</sup>+b<sup>2</sup>=c<sup>2</sup></p>
 9 <p>H<sub>2</sub>O</p>
 10 </body>
 11 </html>

运行结果如图2.8所示。

图2.8 sup、sub标签显示效果

4. <del>和<ins>标签

<del>标签可用于定义已被删除的文本, <ins>标签可用于定义已经被插入的文本,<del>标签与<ins>标签配合使用,来描述文档中的更新和修正。接下来通过案例来演示<del>和<ins>标签,如例2-7所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>文本格式化</title>
 6 </head>
 7 <body>
 8 <p><del>删除文本加删除线</del></p>
 9 <p><ins>插入文本加下画线</ins></p>
 10 </body>
 11 </html>

运行结果如图2.9所示。

图2.9 del、ins标签显示效果

文本格式化标签,一定要根据它们的语义来记忆,至于它们的默认样式,后续可以通过CSS方式进行修改。

2.3.4 引用标签

引用标签就是针对文本进行各种引用的标签,例如缩略词、短语解释、著作、地址等。主要划分成几大类,如表2.3所示。

表2.3中列出了引用标签的几种分类,下面进行详细介绍。

1. <blockquote>和<q>标签

<blockquote>和<q>标签都是对文本的解释引用,<blockquote>标签引用是用大段的段落进行解释,而<q>标签引用是小段的短语进行解释,接下来通过案例来演示<blockquote>和<q>标签,如例2-8所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>文本格式化</title>
 6 </head>
 7 <body>
 8 <p>"死而后已"一语出自诸葛亮《出师表》:<blockquote>“凡事如是,难可逆见,
 9 臣鞠躬尽瘁,死而后已,至于成败利钝,非臣之明所能逆睹也。"</blockquote></p>
 10 <p>WWF 的目标是:<q>构建人与自然和谐共存的世界。</q></p>
 11 </body>
 12 </html>

运行结果如图2.10所示。

图2.10 <blockquote>、<q>标签显示效果

由例2-8中可以看出,<blockquote>标签左右会空出一些距离,<q>标签会自动加上引号。

2. <abbr>标签

<abbr>标签用来引用缩写或首字母缩略语,接下来通过案例来演示<abbr>标签,如例2-9所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>引用标签</title>
 6 </head>
 7 <body>
 8 <p><abbr title="World Health Organization">WHO</abbr> 
 9 成立于 1948 年。</p>
 10 </body>
 11 </html>

运行结果如图2.11所示。

图2.11 <abbr>标签显示效果

例2-9中可以看到一个title属性,当鼠标移入到设置title的区域时,就会显示提示信息。

3. <address>和<cite>标签

<address>标签用来引用地址信息,<cite>标签用来引用著作的标题,展示效果为斜体,接下来通过一个案例来演示<address>和<cite>标签,如例2-10所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>引用标签</title>
 6 </head>
 7 <body>
 8 <address>
 9 <p>网易北京公司</p>
 10 <p>地址:北京市海淀区西北旺东路10号院</p>
 11 <p>邮编:100084</p>
 12 </address>
 13 <p><cite>资治通鉴</cite>由北宋司马光主编的一部多卷本编年体史书</p> 
 14 </body>
 15 </html>

运行结果如图2.12所示。

图2.12 <address>、<cite>标签显示效果

2.3.5 水平线标签

有时为了使文档结构清晰、层次分明,常常需要在网页中添加一些水平线将段落与段落之间分隔开,HTML中使用<hr>标签来创建横跨网页的水平线。另外<hr>属于单标签,在网页中输入一个<hr/>标签,就添加了一条默认样式的水平线,<hr>标签的常用属性如表2.4所示。

接下来通过案例来演示水平线标签,如例2-11所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>水平线标签</title>
 6 </head>
 7 <body>
 8 <p align="center">扣丁学堂</p>
 9 <hr color="#003399" width="100" size="5">a
 10 <p align="left">遇到IT难题,就上扣丁学堂。</p>
 11 <hr>
 12 <p>遇到问题,在线解答。</p>
 13 </body>
 14 </html>

运行结果如图2.13所示。

图2.13 <hr>标签显示效果

例2-11中,第9行定义水平线标签,并设置了color、width、size属性,并没有设置align属性,可以发现align属性默认居中对齐,第11行定义水平线标签,其属性都是默认值,可发现width属性默认的是浏览器窗口的100%。

2.3.6 特殊符号

在编写一些文本时,经常会遇到输入法无法输入的字符,如®(注册商标)、©(版权符)等,还有往一段文字中加入多个空格时,页面并不会解析出多个空格。这些无法输入和空格字符都是特殊字符,在HTML中,为这些特殊字符准备了专门的代码,如表2.5。

接下来通过案例来演示这些特殊字符表示代码,如例2-12所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>特殊符号</title>
 6 </head>
 7 <body>
 8 <p>®注册商标 ©版权 空格 < 小于号 >大于号</p>
 9 <p>&和号 ¥人民币 °摄氏度 ±正负号 ×乘号</p>
 10 <p> ÷除号 ¹上标1 ²上标2 ³上标3</p>
 11 </body>
 12 </html>

运行结果如图2.14所示。

图2.14 难输入符号显示效果

在DW中,只要输入一个&符号,就可以看到相关特殊符号的提示信息。如图2.15所示。

图2.15 DW中特殊符号提示功能

2.3.7 图像标签

每一张网页都离不开图片元素,在网页中添加图片是非常重要的操作,如图2.16所示。

图2.16 图片效果展示

HTML中使用<img>标签来添加图片,<img>属于单标签,其语法格式如下

	<img src=”图像URL”/>

其中src是用于指定图像文件的路径和文件名的属性,是img标签的必需属性。接下来用案例来简单演示img标签的使用。如例2-13所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>图像标签</title>
 6 </head>
 7 <body>
 8 <img src="qianfeng.jpg"/>
 9 </body>
 10 </html

运行结果如图2.17所示。

图2.17 图像标签显示效果

src属性引用的是当前图片的地址,图片的名为qianfeng,图片的格式为.png,接下来针对图片的地址和图片的格式进行详细讲解。

1. 图片的地址

src属性引用的是当前图片的地址,所谓地址就是一个文件的路径。读者在网页中通过地址来找到相应位置的元素。那么地址分为相对地址与绝对地址,相对地址即被引入的文件相对与当前页面的地址。绝对地址即文件在网络或本地的绝对位置。

相对地址有以下三种写法,具体如下。

	<img src=”qianfeng.jpg”/>
	<img src=”img/qianfeng.jpg”/>
	<img src=”../img/qianfeng.jpg”/>

第一个相对地址说明当前页面和图片在同一个目录下。第二个相对地址说明图片在页面同级的img文件夹中。第三个相对地址说明图片在页面上一级的img文件夹中。

绝对地址有以下两种写法,具体如下。

	<img src="http://www.hmttv.cn/uploadfile/2024/0806/20240806110412816.jpg"/>
	<img src=http://www.hmttv.cn/uploadfile/2024/0806/20240806110414327.jpg”/>

第一个绝对地址在本地D盘的相应文件夹下。第二个绝对地址在网络中的相应文件夹下。

当前网页和图片文件如果同时移动到其他位置时,相对地址是不会出问题的,因为两个文件的相对位置并没有发生变化。而绝对地址则会有问题,因为地址是唯一的路径。所以在开发网页的时候建议读者尽量采用相对地址。

2. 图片格式

网页中加载图像如果太大会造成网页加载速度慢,太小图片会显示不清晰,在网页中选择合适的图片格式加载显得尤为重要,常用的图片格式主要有jpg、png和gif三种格式,接下将分别进行详细讲解。

(1)jpg格式

jpg格式的图片是一种有损压缩的图像格式,即每次修改图片都会造成一些图像数据的丢失。jpg是特别为照片图像设计的文件格式,可以很好地处理大面积色调的图像,一般在网页中用来展示色彩丰富的图像。如图2.18所示。

图2.18 jpg格式图片显示效果

(2)png格式

png格式的图片相对于jpg、gif格式最大的优点是体积小,支持alpha透明(全透明、半透明、全不透明),可以很好地理透明方式的图片,比如网页中的logo图片可以在不同的背景底色下完美展现。如图2.19所示,但png不支持动画。另外需要注意,IE6,可以支持png-8,但是在处理png-24的透明时会显示为灰色。通常,图片保存为png-8会在同等质量下获得比gif更小的体积,而半透明的图片只能使用png-24。

图2.19 png格式图片显示效果

(3)gif格式

gif格式图片最重要的特点是支持动画,可以很好地处理动画效果的图片,如网页中的广告图片。如图2.20所示。同时gif是一种无损的图像格式,修改图片几乎不会造成图像数据的丢失。而且gif也支持透明(全透明和全不透明),因此很适合在网页中使用。但gif只能处理256种颜色,在网页制作中,常用于logo、小图标及其他色彩相对单一的图像。

图2.20 gif格式图片显示效果

<img>标签除了src属性外,还包括一些其他属性,如表2.6所示。

表2.6中简单描述了img标签中常用的属性,为了使初学者更好地理解和应用这些属性,接下来进行详细讲解。

1. alt属性

alt属性是图片显示不出来时的提示文字。当设置了alt属性后,如果图片正常显示的话,是看不到任何效果的,只有当图片地址出问题导致图片不显示时,才可以看到alt的提示信息。接下来通过案例来演示alt属性,如例2-14所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>图像标签</title>
 6 </head>
 7 <body>
 8 <img src="qianfeng.jpg">
 9 <img src="qianfengError.jpg" alt="千锋教育">
 10 </body>
 11 </html>

运行结果如图2.21所示。

图2.21 alt属性显示效果

2. title属性

title属性是鼠标移到图片上的提示文字。当设置了title属性后,如果鼠标移入到图片上时,就会显示title的提示信息。接下来通过案例来演示title属性,如例2-15所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>图像标签</title>
 6 </head>
 7 <body>
 8 <img src="qianfeng.jpg" title="千锋教育">
 9 </body>
 10 </html>

运行结果如图2.22所示。

图2.22 title属性显示效果

alt属性和title属性都是有利于SEO搜索引擎的优化和用户体验的提升,只是它们展示的方式不一样。

2.3.8 链接标签

单个网页不能容纳网站需要的所有信息,需要多个网页构成,这时就点击链接可以从一张网页跳转到另一张网页,如图2.23所示。

图2.23链接效果展示

HTML中使用<a></a>标签来定义链接部分实现网页的跳转,其语法格式如下。

<a href=“链接页面地址” target=“链接打开的方式”>链接对象</a>

接下来通过案例来演示链接标签,如例2-16所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>链接标签</title>
 6 </head>
 7 <body>
 8 <a href="2-15.html">打开一个新的网页</a>
 9 <a href="http://www.mobiletrain.org">千锋官网</a>
 10 <a href="../照片.rar">下载压缩包文件</a>
 11 </body>
 12 </html>

运行结果如图2.24所示。

图2.24 链接标签显示效果

链接和图像一样,地址可以是相对地址或绝对地址。链接除了可以链接地址外,还可以链接其他的元素(压缩包,word文档,PPT文档等)。例2-16中第一个链接打开的是一个本地中的相对地址,第二个链接打开的是一个网络上的绝对地址,第三个链接点击后会下载一个压缩包文件。

链接可以针对文字,也可以针对图片,当点击图片时会打开一个新的网页,接下来通过案例来演示,如例2-17所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>链接标签</title>
 6 </head>
 7 <body>
 8 <a href="2-15.html">
 9 <img src="qianfeng.jpg">
 10 </a>
 11 </body>
 12 </html>

运行结果如图2.25所示。

图2.25 链接图片的显示效果

例2-16、2-17中<a>标签只定义了href属性,<a>标签除了href属性外还包含target和name两个重要属性,下面就来分别介绍<a>标签的这三个属性。

1. href属性

herf属性就是来指定链接目标的url地址,为<a>标签定义herf属性后,它就有了链接的功能。

2.name属性

有些网页的内容较多,页面过长,如百度百科千锋教育,只能不断的拖动滚动条来浏览网页,查看所需要的内容,效率较低,而且很不方便,这时可以通过<a>标签的name属性实现站内跳转,这种站内的跳转的方式也称锚点操作,接下来通过案来演示name属性的作用,如例2-18所示。

1 <!doctype html>

2 <html>

3 <head>

4 <meta charset="utf-8">

5 <title>链接标签</title>

6 </head>

7 <body>

8 <a href="#h5Pos">HTML5</a>

9 <a href="#phpPos">PHP</a>

10 <p>点击上面的链接可跳转到指定的位置</p>

11 <a name="h5Pos">HTML5的内容</a>

12 <p>HTML5</p>

13 <p>HTML5</p>

14 <p>HTML5</p>

15 <p>HTML5</p>

16 <p>HTML5</p>

17 <a name="phpPos">PHP的内容</a>

18 <p>PHP</p>

19 <p>PHP</p>

20 <p>PHP</p>

21 <p>PHP</p>

22 <p>PHP</p>

23 </body>

24 </html>

运行结果如图2.26所示。

3.target属性

target属性用于指定链接页面的打开方式,其取值如表2.7所示

目前常用的取值有_self和_blank两种,接下来通过案例来演示这两种取值的功能,如例2-19所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>链接标签</title>
 6 </head>
 7 <body>
 8 <a href="2-3.html" target="_self">当前窗口打开链接</a>
 9 <a href="2-3.html" target="_blank">新窗口打开链接</a>
 10 </body>
 11 </html>

运行结果如图2.27所示。

图2.27 target属性的显示效果

一般情况下,target只用到“_self”和“_blank”这两个属性值,其他两个不需要深究,因为几乎用不到。

2.3.9 列表标签

列表是网页中一种常用的数据排列方式,在网页中到处都可以看到列表的身影,如图2.28、图2.29,都是网页中常见的列表。

HTML中列表分为有序列表、无序列表和定义列表三种,下面将分别介绍这三种列表。

1. 有序列表

在HTML中用<ol>标签表示有序列表,列表项目用<li>标签表示,列表项目有先后顺序之分,因此称为有序列表。接下来通过案例来了解有序列表,如例2-20所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>链接标签</title>
 6 </head>
 7 <body>
 8 <ol>
 9 <li>HTML</li>
 10 <li>CSS</li>
 11 <li>JavaScript</li>
 12 <li>PHP</li>
 13 <li>JAVA</li>
 14 </ol>
 15 </body></html>

运行结果如题2.30所示。

图2.30 有序列表展示效果

图2.31中可以看到前面的阿拉伯数字是默认效果,可以通过有序列表的type属性来设置不同的显示效果,其取值如表2.8所示。

接下来通过案例来演示type属性的用法,如例2-21所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>列表标签</title>
 6 </head>
 7 <body>
 8 <ol type="a">
 9 <li>HTML</li>
 10 <li>CSS</li>
 11 <li>JavaScript</li>
 12 <li>PHP</li>
 13 <li>Java</li>
 14 </ol>
 15 </body>
 16 </html>

运行结果如图2.31所示。

图2.31 有序列表展示效果

在有序列表中,除了type属性之外,还可以为<ol>定义start属性用于规定项目符号的起始值,为<li>定义value属性用来规定项目符号的数字。

以上的效果都是HTML自带效果,如果效果上有更多的需求,可以配合CSS来完成,例如图2.32的效果,读者可以在学习完CSS时再来实现。

图2.32 CSS美化有序列表

2. 无序列表

在HTML中用<ul>标签表示无序列表,列表项目用<li>标签表示,列表项目没有先后顺序之分,因此称为无序列表。接下来通过案例来演示无序列表,如例2-22所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset=”utf-8”>
 5 <title>列表标签</title>
 6 </head>
 7 <body>
 8 <ul>
 9 <li>HTML</li>
 10 <li>CSS</li>
 11 <li>JavaScript</li>
 12 <li>PHP</li>
 13 <li>JAVA</li>
 14 </ul>
 15 </body>
 16 </html>

运行结果如图2.33所示。

图2.33 无序列表展示效果

跟有序列表类似,读者可以看到默认情况下无序列表前面会有一个黑色的小圆点,同样可以通过type属性修改其显示效果,type属性取值如表2.9。

接下来通过案例来演示无序列表type属性取值,如例2-23所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset=”utf-8”>
 5 <title>列表标签</title>
 6 </head>
 7 <body>
 8 <ul type=”circle”>
 9 <li>HTML</li>
 10 <li>CSS</li>
 11 <li>JavaScript</li>
 12 <li>PHP</li>
 13 <li>JAVA</li>
 14 </ul>
 15 </body>
 16 </html>

运行结果如图2.34所示。

图2.34 无序列表展示效果

<li></li>之间相当于一个容器,可以容纳所有的元素。但是<ul></ul>中只能嵌套<li></li>,不允许直接在<ul></ul>标记中输入文字。

3. 定义列表

定义列表通常用于对专业术语或名词进行解释和描述,与有序列表和无序列表不同,定义列表项目前没有任何项目符号。其语法如下。

	<dl>
	<dt>定义名词</dt>
	<dd>名词解释和描述</dd>
	……
	</dl>

上面的语法中,<dl></dl>标签用于定义列表,<dt></dt>和<dd></dd>并列嵌套于<dl></dl>中,其中<dt></dt>标签用于定义专业术语或名词,<dd></dd>标签用于对名词进行解释和描述。一对<dt></dt>可以对应多对<dd></dd>,即一个名词可以有多个解释和描述。接下来通过案例来演示定义列表,如例2-24所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>列表标签</title>
 6 </head>
 7 <body>
 8 <dl>
 9 	 <dt>HTML</dt>
 10 <dd>超文本标记语言</dd>
 11 <dt>CSS</dt>
 12 <dd>层叠样式表</dd>
 13 <dt>JavaScript</dt>
 14 <dd>网页脚本语言</dd>
 15 </dl>
 16 </body>
 17 </html>

运行结果如图2.35所示。

图2.35 定义列表展示效果

定义列表在实际开发中不常用,大多数情况还是使用有序列表和无序列表,后面章节中还会详细讲解HTML标签使用规范。

2.3.10 <div>与<span>

div全称为division,“分割、分区”的意思,<div>标签用来划分一个区域,相当于一块区域容器,可以容纳段落、标题、表格、图像等各种网页元素。即HTML中大多数的标签都可以嵌套在<div>标签中,<div>中还可以嵌套多层<div>,用来将网页分割成独立的、不同的部分,来实现网页的规划和布局。如图2.36为阿里汽车和潮电影网站的布局。都是使用<div>标签来实现的。

图2.36 淘宝网区块展示效果

接下来通过案例来简单演示<div>标签的使用,如例2-25所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>div/span</title>
 6 </head>
 7 <body>
 8 <div>区域1
 9 <p>这是一个段落</p>
 10 </div>
 11 <div>区域2
 12 <h6>这是一个段落</h6>
 13 </div>
 14 <div>区域3
 15 <hr align="left" width="50" color="#00FF66">
 16 </div>
 17 </body>
 18 </html>

运行结果如图2.37所示。

图2.37 div标签展示效果

<span>标签是用来修饰文字的,也叫做内联标签 ,如图2.38。

图2.38 千锋教育文字修饰效果

接下来通过案例来演示<span>标签,如例2-26所示。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>div/span</title>
 6 </head>
 7 <body>
 8 <span>文字修饰1</span>
 9 <span>文字修饰2</span>
 10 <span>文字修饰3</span>
 11 </body>
 12 </html>

运行结果如图2.39所示。

图2.39 span标签展示效果

<div>标签和<span>标签,多数情况下需要配合CSS样式,在后续的章节中,再详细的讲解<div>标签和<span>标签的用法。

2.4 本章小结

通过本章的学习,首先介绍HTML语法的发展历史和HTML语义化的含义。然后对HTML常用标签进行了讲解,如标题、段落、列表等。通过本章的学习,能掌握HTML常用标签,能初步编写基本的HTML网页。

2.5 习题

1. 填空题

(1) 网页加载时常用图片的格式为

(2) 图像标签的属性src用于指定图像 的属性。

(3) 文件的路径可以分为 两种。

(4) <strong>标签强调文本

(5) 是为了实现HMTL向XML过渡,让作者按照统一的风格来编写标签。

2.选择题

(1) 在一个网页中,只能出现一次的标题标签是( )。

A.<h1> B.<h2>

C.<h3> D.<h4>

(2) a标签的target属性中哪一个值是在一个全新的空白窗口中打开链接( )。

A._self B._blank

C._top D._parent

(3) 定义列表不包括下面哪个标签( )。

A.<dl> B.<dt>

C.<dd> D.<ol>

(4) 强调字体是斜体的标签是( )。

A.<sup> B.<del>

C.<em> D.<strong>

(5) 设置水平线对齐方式的属性是( )。

A.size B.align

C.width D.color

3.思考题

(1) 请简述什么是HTML语义化?

(2) 请简述有序列表与无序列表之间的区别?

内容来源书籍:《HTML5从入门到精通》,一本Web前端实用性综合技术图书。

简介:《HTML5从入门到精通》倡导“快乐学习,实战就业”的理念,作为初学者高品质的入门教材之一,免费提供一站式教学服务包,附赠配套PPT、教学视频、教学大纲、考试系统、测试题等资源。且书本内容覆盖全面、讲解详细,其中包括标签语义化、标签使用规范、选择器类型、盒模型、标签分类、样式重置、CSS优化、Photoshop切图处理、整页制作、CSS3新样式、HTML5新功能等。与此同时,本教材通过总结、归纳HTML、CSS、CSS3动画与3D及移动端布局与响应式开发等核心知识点,并从项目开发的实际需求入手,将理论知识与实际应用相结合,以此帮助初学者全面、系统、深入、透彻地理解HTML5的基础知识和技术,使他们快速地成长为初级程序员,并拥有一定的项目开发经验,从而在职场中拥有一个较高的起点。

辑导读:在线办公在疫情期间成为企业办公的主要形式,而随着信息化的发展,在未来也将成为一种流行趋势。而飞书作为在线办公产品中的佼佼者,它的成功经验值得其他产品学习。本文作者将以飞书为例,对其进行深入的分析,希望对你有帮助。

一、全文结构

本文会用到Seven Domains Model(图1),把整个外部环境分为四层。

第一层是宏观的市场现状,第二层是宏观行业状况,第三层是微观消费者群体分析,第四层是则是微观的公司产品分析。第一第二层将从宏观视角上来观察移动办公平台的发展,第三第四层则会以飞书为主要视点进行竞争环境的分析。

在宏观市场现状分析上,会采用PEST分析;在宏观行业分析上会采用波特五力模型;而在产品分析中,会从用户体验要素理论和KANO模型的角度进行分析。

图表 1:Seven Domains’ Model (Mullins, 2013)

二、宏观市场分析-PEST 分析

2.1 Politics 政治

从图2可以看到,政策对移动办公平台一直持有正面态度。2015年,国务院出台文件,鼓励云计算降低信息化门槛,推动产业信息化。随后一直到2017年,每年都有强调推进工业信息化。在2017年,工信部明确指出了要加快企业级SaaS服务的发展,推进中小企业信息化进程。

图表 2:中国移动办公平台相关政策(艾瑞网, 2018)

2.2 Economy 经济

我国的GDP增长今年来持续放缓,从2010年10.6%逐步降至2019年6.1%。从GDP的贡献率来看,投资对国内GDP的增长贡献下滑,原因是以往的投资在传统行业中导致产能过剩引起了资本效益降低。消费支出对GDP的贡献稳定在60%左右,是经济发展的主要动力。

图表 3:中国GDP增长情况(艾瑞网, 2020a)

图表 4:GDP增长贡献率(艾瑞网, 2020a)

尽管国内GDP增速正在放缓,云服务市场却是风景独好,欣欣向荣。云服务市场在2019年增速达到了57.1%,存量规模1612.4亿元。其中IaaS市场增速70%;PaaS市场增速27%,并将持续提升其规模增长速度(艾瑞网, 2020)。SaaS市场也在持续稳定增长。SaaS市场规模在2018年为243.5亿元,同比增长47.9%(图6)。

图表 5:云服务整体市场规模(艾瑞网, 2020c)

图表 6:2013年至2018年SaaS市场规模及预期增长(艾瑞网, 2019b)

2.3 Society 社会

为了观察社会大众对移动办公软件的态度,笔者在2020年9月22日通过“移动办公”这一关键词在微博上进行前10页信息(共200条微博)的整合,得到如下表格。

图表 7:微博用户对移动办公的态度汇总

总体而言,微博上的用户对移动办公总体呈正面肯定态度。首先,移动办公软件能够让用户做到“生活办公两手抓”。例如,在本次收集的数据中有7条微博展示了一种“上午度假,下午办公”的生活方式。其次,移动办公软件还满足了用户办公场景个性化的需求,用户表现出对于在不同场所(如咖啡厅、书店和家中办公)进行办公的新鲜感。移动办公平台也在推动“clean desk”的无纸化办公文化。

在情景方面,移动办公软件能够让用户的时间碎片化,进而能够把生活中的等待闲余用于办公。例如,有4位用户反映自己利用在地铁、高铁或飞机上的闲余时间进行工作事务的处理。同时,这种碎片化也更方便用户去处理生活中的人际关系,如照顾小孩或陪伴异性。

网络上也有对于移动办公软件的负面评价。最主流的负面评价认为移动办公软件模糊了工作与生活的界线,使得用户就算是在周末或休假也要继续工作。同时,电脑依旧是移动办公平台的主要端口,硬件和网络条件限制着移动办公软件往下沉市场的发展。

2.4 Technology 技术

由于硬件条件和网络条件限制着移动办公平台对中小企业的影响,对于这一些方面的技术探索,包括5G和云设备,将会作为这一节的要探讨的内容。

5G

5G,即第五代移动通信技术,可能是当下最热门的,被谈论最多的技术了。艾瑞咨询2020年关于5G的报告显示,比较了解或非常了解5G的用户占总用户的57.2%,并且高达87.1%认为5G会对生活产生巨大影响。

图表 8:用户对5G的认知 (艾瑞网, 2019a)

这种对5G的高度评价也导致了民众对5G的向往与期待,大约有76.6%的用户希望能够在2021年之前就能够用上5G(图9)。可以预见的是,在接下来的几年内,5G用户将会有巨大增长。5G的大覆盖、高速率、低时延等特点也能很好的推动移动办公平台向三四线城市的发展。而移动办公平台在这种趋势下,也需要对目前平台上的既有应用和第三方应用作出改革,推出适应5G时代的办公方式。

图表 9:用户对5G的期待 (艾瑞网, 2019a)

5G对于设备的轻量化也有明显的推动作用。例如,在2020年9月17日,阿里发布了第一台云电脑“无影”,仅有一张名片的大小,单手可握。另外,在云VR的概念方面,5G可以把计算和图像渲染放到云端,以降低VR设备的成本和性能要求,使得VR设备更加轻量。可以说5G对于移动办公的硬件轻便化也有着举足轻重的影响。

三、行业分析:波特五力模型分析

图表 10:移动办公平台的波特五力模型分析

在同业竞争和新进入者威胁方面,目前除了华为WeLink,飞书、钉钉、企业微信都通过免费策略来抢夺市场份额,因此同业竞争者的威胁性高。同时,由于市场竞争激烈,新进入者威胁偏小。

平台拥有对供方的中等强度议价权。首先,平台通过对第三方开发者的应用的整合,形成对其它企业级SaaS服务的相对优势,加上免费策略,从而占据了相对较大的市场份额。如此一来,供方的议价权就会受到影响。其次,如图11所示,市面上协同办公、文档管理和视频会议三个方面的SaaS产品在功能上的交叉重叠较多,整体趋于同质化,因此供方的议价权也会受到影响。除非第三方开发者能够开发出差异性强的优质产品,否则随着平台的发展以及同质化SaaS产品的丰富,供方的议价权会持续下降。

图表 11:远程办公应用分类图(易观千帆,2020)

平台对买方有中等强度议价权。钉钉、企业微信和飞书之间竞争激烈,导致买方议价权上升,三家平台对用户的免费政策也侧面印证了这一点。同时,现有企业一般都有自己较成熟的一套的管理运作模式,要让他们使用移动办公平台、适应新的运营方式并不轻松,用户有较高的学习成本。尽管从长期来看,能够打破信息孤岛效应的移动信息平台可以推动企业进一步提升竞争力,然而近期的市场压力可能会让企业更加保守谨慎。以上这些原因导致平台对买方的议价权下降。

移动办公平台面临着中等偏低的替代品威胁。这在一方面是由于现有企业普遍都有使用ERP、CRM、HRM或者OA等类别的企业级SaaS产品,如金山旗下的WPS,金蝶的财务软件等,能够替代企业对移动办公平台的需求,这形成了一部分移动办公平台的替代品威胁。而另一方面,平台整合了这些SaaS服务,并且把这些服务产生的信息集中起来,提升了企业信息周转的效率,这使得企业在使用后对移动办公平台会形成一定的忠诚度和依赖性,移动办公平台的替代品威胁也因此有所削弱。这一点可以通过图12中2019年4月到2020年1月钉钉大约50%的用户次月存留率可以得到一定的印证(没有查到企业微信和飞书相关的信息)。

图表 12:钉钉用户的次月留存率

四、消费者群体分析

4.1 消费者规模 & 增长

从整体上看,移动办公平台的上升空间大,未来前景可期。由于今年受疫情影响,国内移动化的协同办公软件得到空前的关注,2020年预计移动协同办公软件市场规模同比增长43.5%,预计市场规模达440.2亿元,预计2020年后增速也会维持在20%左右。

图表 13:协同办公软件市场规模增长(艾瑞网,2018)

4.2 其它可能的潜在消费者群体

目前企业微信、钉钉和飞书都以中小企业为目标客户,而对于别的一些潜在用户,如设计师,科研人员等比较重视个体独立工作的群体并没有明显的设计思考和宣传偏好。但这一些群体也有可能出于对于材料收集、整理和引用,研究/设计成果保存以及项目进度安排规划的需求而使用这些平台。对这些松散用户体系的整合可能能够带来新的用户流量。

4.3 消费者有待满足的需求

细分领域的需求还没有得到满足。目前市场上的移动办公平台大多数瞄准通用性应用,针对垂直细分领域的应用数量相对较少。而在各个行业,整个供应链,工作流程和工作需求都大不一样。除了普遍适用的通用性服务,移动办公平台的另一个核心竞争力是去变革各个行业中中小企业落后的商业管理模式,并且提供能够推动行业进步的工作方式。为此,移动办公软件或许仍旧需要去了解各行业中的中小企业的痛点,以给出能够适应特定行业内流程的解决方案。

五、飞书的产品分析-用户体验要素分析

5.1 战略层

出于对绩效的追求,如何提升组织内部员工协作能力成为了企业普遍关心的问题。在企业的内部协作中,有5类问题是较为常见的,分别是:沟通协作,文档管理,人力资源配置,行业个性化需求和跨部门协作。

图表 14:企业办公产生的需求

在另一方面,企业也对跨设备的移动办公软件有着刚需。以往的单一设备上的SaaS服务软件已不足以满足公司需求。这种工作方式使得公司在软件服务的成本增加,而由于硬件设备的限制,使用的效率逐渐减小。对于常常出差的员工而言,公司购买的软件常常不能满足其办公需求。由此,公司对于移动办公平台的需求势必会渐渐取代单一设备上的SaaS软件。

飞书的目标是提升公司用户的内部协作能力,并使得公司办公泛在化和移动化。飞书官网的slogan “在飞书,享高效” 也充分表现出飞书提升组织效率的产品目标。

细分来看,飞书主要目标有:

  • 突出重点信息,提升信息流转效率,降低信息噪音,丰富信息交流方式;
  • 共享、编辑和保存文档;
  • 汇总有关个人工作量和工作时间的信息;
  • 满足各垂直领域的特定需求;
  • 整合跨部门知识,形成解决方案。

5.2 范围层-KANO模型分类

在本节中,根据4位身边朋友的访谈记录,利用KANO模型对飞书的一些功能进行分类,得到下图。

图表 15:对飞书App内功能进行分类

从图15中可以看到,飞书在需求处理方面非常重视信息流动、文档管理和人力资源配置。这与飞书的自我定位是紧密相关的。

飞书为了提升组织的沟通协作能力,开发了很多非常出色的细节。在信息降噪方面,通过Pin和表情回复,减少了无用信息,提升了沟通效率。在信息传输方面,语音自动转录文字的功能可以提升信息输入的效率。视频会议中飞书还允许用户对文档进行协同编辑和评论。不过其中一位受访者提出了“一起编辑文件不会很吵吗?“这样的疑问,这说明”视频会议+文档协同编辑“的功能的使用方式还需要更多的宣传才能被人理解和喜爱。

在文档管理方面,飞书也有很多非常让人惊喜的功能。比如说在某一位受访学生在知道了文档评论功能和文件内容搜索功能后,就眼睛一亮,提出想要用该软件整理电子课件上的笔记,问“那能不能上传pdf文件呢?“不过笔者上传手机本地的pdf和word文件都没有成功,后来通过PC端才成功上传了文件。在PC端可以对pdf的个别字句进行评论,但在手机端就只能对整个文档进行评论。所以整体而言飞书对于pdf文件的编辑功能还比较简陋。

由于笔者访问的人群中没有飞书的使用者,在采访中没有办法作深入的了解,所以对于飞书的日历和工作台不好作出评价。

5.3 结构层

图表 16:飞书App结构图

5.4 框架层

飞书的框架很简洁,在APP主界面的固定要素有:消息,日历,工作台,云文档,联系人,搜索,我的信息(图17中红色标注)。在部分情况下,左上角的标题还可以用作内容的分类(图17中红色标注)。右上角的“新增菜单“是飞书app中的常见功能(图17中蓝色标注),通常放置一些新增列表内容的操作,通常用加号来表示,如消息页的右上角的新增菜单,就提供“创建组群“,”邀请“等功能。同时,考虑到消息页是应用的主页,”扫一扫“,”创建文档“等常用功能也被收纳到消息页的新增菜单里面。

图表 17:飞书App内“消息页”(左)和“云文档页”(右)的布局

飞书APP在设计上以组织效率为出发点。它在消息和文档中用以尽可能小的空间容纳常用联系人和文件(图17中绿色标注),又在工作台中用相对较大的空间放置常用应用(图18中绿色标注)。同时,在文档页面和工作台页面,飞书提供了提前设定好的筛选条件,以加快搜索速度(图17、18中黄色标注)。

图表 18:飞书App内工作台布局

5.4.1 个人认为能够改进的地方

已读未读图标:

图表 19:飞书App内“群聊页”(左图)和“文档评论”(右图)的布局

在上面两个图中,可以看到左右两图被黄色黑边框高亮的图标除了颜色之外没有太多的差别(左图中“✓“为绿色,右图中“✓“为灰色),但是这两个图标分别代表这不同的意思。左图群聊页中的“✓“表示的是已读未读功能,右图文档评论框中“✓“则表示的是解决评论功能。对于习惯了在群聊中用“✓“确认消息是否传达的用户来说,右图文档评论框中的“✓“会让用户下意识认为这也是已读未读功能,进而造成了用户心理上的错觉。因此个人建议右图里的“✓“可以进行修改。笔者认为可以将之改为一个类似滑块验证码的设计,来让用户区别开这两个图标之间的区别。

图表 20:飞书“文档评论”布局修改意见

取消颜色和高亮:

图表 21:飞书App内“颜色与高亮页”的原布局(左图)与修改建议(右图)

取消字体颜色和高亮的按键位置可以放在更方便的地方。在目前的设计中(左图),在选择字体颜色和高亮之后,用户输入的每个字体都会有颜色/高亮效果,而如果要取消该效果,用户就需要在选项框的最下面找到“清除“按钮。在寻找”清除“选项的时候,用户需要稍微往下翻页。由于清除选项恰好是在该选项框中唯一一个需要往下翻页才能被看见的按钮,用户可能会找不着,进而产生焦虑。因此,笔者认为这个设计可以进行一定的改进(笔者使用设备为iphone 6,屏幕较小,可能在别的设备上显示效果会不一样)。笔者个人认为可以把原文效果的选项放在颜色和高亮标题上(右图橙色箭头指示处),提升用户的使用体验。

5.6 表现层

飞书在整体上使用白色作为页面底色,以显示出简洁干练的风格。为了突出重点信息,主要或重要信息用黑色字体,次要信息则使用小字号的灰色字体。圆形图标底色以蓝色为主,搭配少量的暖色来活跃整个界面。图标内嵌以白色的图形进行表意,在应合图标对应的标题的同时,也在颜色上呼应了页面背景,使得整体要素和谐,不会有突兀的地方。

六、总结

本文基于笔者对飞书app的体验,和他人的访谈以及在微博上收集到的一些用户反馈作为经验证据,对产品需求进行了分类,并提出了一些需要改进的地方以及笔者的建议。全文的主要结论如下:

  1. 国内政策鼓励企业级服务平台的发展,以推动中小企业的信息化进程。
  2. 国内整体经济的增速在放缓,而云服务、SaaS的市场正不断成长。
  3. 在社会舆论方面,大众对于移动办公平台既爱又恨。一方面它能够让企业员工平衡生活与工作中的事务,另一方面却影响了员工的休假。同时,网络条件和硬件条件也制约着移动办公平台在三四线城市的发展。
  4. 在技术方面,5G技术可以促使网络条件优化和移动设备轻量化,推动移动办公平台的发展。
  5. 目前行业内市场竞争激烈,导致行业新进入者威胁不高,且随着移动办公平台的发展,供方的议价权和替代品威胁会持续变弱,因此行业前景光明。
  6. 尽管移动办公软件的市场规模不断增大,目前市面上的移动办公平台同质化较为严重,没有太多针对特定传统行业的解决方案。另外,除了中小企业,科研人员等在职业上比较重视个人独立工作的用户可能能够成为移动办公平台的潜在用户。
  7. 本文对飞书用户的需求和相对应的产品功能进行了梳理。在框架层内笔者提出了两点可能能够提升用户体验的建议。

七、参考文献

Mullins, J. (2017). The new business road test: what entrepreneurs and investors should do before launching a lean start-up. Pearson UK.

PM大叔.(2020)《竞品分析报告:飞书VS钉钉VS企业微信,移动办公哪家强》. 人人都是产品经理. http://www.woshipm.com/evaluating/3821740.html

艾瑞网.(2020a)《2020年中国网络经济年度洞察报告简报》. http://report.iresearch.cn/report_pdf.aspx?id=3611

艾瑞网.(2020b)《湖光秋月两相和-2020年5G+云VR研究报告》. http://report.iresearch.cn/report_pdf.aspx?id=3575

艾瑞网.(2020c)《中国基础云服务行业发展洞察》. http://report.iresearch.cn/report_pdf.aspx?id=3651

艾瑞网.(2019a)《未来已来-2019年5G行业研究报告》. http://report.iresearch.cn/report_pdf.aspx?id=3512

艾瑞网.(2019b)《中国企业级SaaS行业研究报告》. http://report.iresearch.cn/report_pdf.aspx?id=3374

艾瑞网.(2018)《重新定义移动办公-2018年中国企业移动办公平台发展洞察》. http://report.iresearch.cn/report_pdf.aspx?id=3130

忍者无疆.(2020)《字节跳动下的飞书,有哪些优势与劣势》. 人人都是产品经理. http://www.woshipm.com/evaluating/3490887.html

是灰机吖.(2020)《从一个90后员工的角度,谈谈我为什么喜欢飞书》. 人人都是产品经理. http://www.woshipm.com/zhichang/4144508.html

十里村.(2020)《被联合国推荐的字节跳动飞书,哪些产品亮点值得学习》. 人人都是产品经理. http://www.woshipm.com/it/3512994.html

王海.(2020)《当我们聊飞书时,我们应该聊什么》. 人人都是产品经理. http://www.woshipm.com/operate/4167689.html

小白不白.(2020)《企业办公平台的未来发展方向》. 人人都是产品经理. http://www.woshipm.com/pd/3466012.html

易观千帆.(2020)《在线办公用户行为分析2020》

田宇洲. (2020)《【产品复盘】字节跳动-飞书团队工作1年收获总结》. 人人都是产品经理. http://www.woshipm.com/pd/4126729.html

本文由 @汪仔4496 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

天我们将为大家介绍一个令网页性能大幅提升的神奇技术——CSS硬件加速。随着移动互联网的蓬勃发展和网页设计越发复杂,如何优化网页性能成为了前端开发者们亟待解决的问题。在这篇文章中,我们将深入了解CSS硬件加速的原理,并通过一个生动的案例来展示它如何帮助我们改善网页的渲染性能。

一、什么是CSS硬件加速

在传统的网页渲染中,浏览器使用中央处理器(CPU)来处理CSS样式和页面渲染。然而,随着网页变得越来越复杂,例如包含大量动画、过渡效果或复杂的变换,CPU可能会承担较重的负担,导致页面加载缓慢或卡顿。CSS硬件加速是一种解决方案,它充分利用了计算机的图形处理单元(GPU)来加快CSS样式的处理和渲染,从而提高页面性能和流畅度。

1.1 CPU

CPU 即中央处理器。

CPU是计算机的大脑,它提供了一套指令集,我们写的程序最终会通过 CPU 指令来控制的计算机的运行。它会对指令进行译码,然后通过逻辑电路执行该指令。整个执行的流程分为了多个阶段,叫做流水线。指令流水线包括取指令、译码、执行、取数、写回五步,这是一个指令周期。CPU会不断的执行指令周期来完成各种任务。

1.2 GPU

GPU 即图形处理器。

GPU,是Graphics ProcessingUnit的简写,是现代显卡中非常重要的一个部分,其地位与CPU在主板上的地位一致,主要负责的任务是加速图形处理速度。GPU是显卡的“大脑”,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。

二、CSS硬件加速原理

CSS硬件加速的原理涉及到浏览器的渲染引擎、GPU以及优化渲染的过程。

2.1 浏览器的渲染流程

一个完整的渲染步骤大致可总结为如下:

  • 渲染进程将HTML内容转换为能够读懂的DOM树结构。
  • 渲染引擎将CSS样式表转化为浏览器可以理解的 styleSheets ,计算出DOM节点的样式。
  • 创建布局树,并计算元素的布局信息。
  • 对布局树进行分层,并生成分层树。
  • 为每个图层生成绘制列表,并将其提交到合成线程。
  • 合成线程将图层分成图块,并在光栅化线程池中将图块转换成位图。
  • 合成线程发送绘制图块命令DrawQuad给浏览器进程。
  • 浏览器进程根据DrawQuad消息生成页面,并显示到显示器上。

2.2 CSS硬件加速触发

在传统的渲染过程中,布局和绘制是由CPU来完成的,而在CSS硬件加速下,GPU参与了渲染的处理,从而提高了性能。

CSS 中的以下几个属性能触发硬件加速:

1.transform属性:该属性用于应用2D或3D变换效果,如旋转、缩放、平移等。当使用transform属性时,浏览器会将变换任务交给GPU处理,从而实现硬件加速。

2.opacity属性:该属性用于设置元素的不透明度。虽然它主要用于控制透明度,但是一个不为1的值(例如0.99)也可以触发硬件加速。

3.will-change属性:will-change属性用于提示浏览器一个元素将要发生的变化,以便浏览器在渲染过程中做出优化。

一旦CSS硬件加速被触发,相关的渲染任务将被GPU处理。GPU在处理图形和动画方面通常比CPU更快和更高效。对于复杂的CSS动画和变换,GPU可以并行处理多个任务,从而提高性能和流畅度。

请注意,CSS硬件加速并不是适用于所有情况。虽然它在许多情况下可以带来显著的性能提升,但有时也可能导致额外的GPU资源占用,从而影响其他应用程序的性能。因此,在使用CSS硬件加速时,我们应该进行性能测试和优化,确保在特定情况下确实能获得性能的提升。

三、CSS硬件加速案例

现在,我们来看一个实际的案例,通过启用CSS硬件加速来改善网页性能。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>Document</title>

<style>

.app {

position: relative;

width: 400px;

height: 400px;

}

.box {

position: absolute;

left: 0;

top: 0;

width: 100px;

height: 100px;

background-color: yellowgreen;

}

.box-run1 {

-webkit-animation: run1 4s infinite;

animation: run1 4s infinite;

}

.box-run2 {

-webkit-animation: run2 4s infinite;

animation: run2 4s infinite;

}

@keyframes run1 {

0% {

top: 0;

left: 0;

}

25% {

top: 0;

left: 200px;

}

50% {

top: 200px;

left: 200px;

}

75% {

top: 200px;

left: 0;

}

}

@keyframes run2 {

0% {

transform: translate(0, 0);

}

25% {

transform: translate(200px, 0);

}

50% {

transform: translate(200px, 200px);

}

75% {

transform: translate(0, 200px);

}

}

</style>

</head>

<body>

<div class="app">

<div class="box"></div>

</div>

<button class="btn1">循环转换</button>

<button class="btn2">硬件加速</button>

<script>

let box = document.querySelector(".box");

let btn1 = document.querySelector(".btn1");

let btn2 = document.querySelector(".btn2");

btn1.addEventListener("click", function (e) {

box.classList.remove("box-run2");

box.classList.add("box-run1");

});

btn2.addEventListener("click", function (e) {

box.classList.remove("box-run1");

box.classList.add("box-run2");

});

</script>

</body>

</html>

此时我们可以运行代码,在页面上可以看到,2个按钮均能使box在app当中循环移动。但对于这两种方式的移动,他们的效率却有着很大的差异。我们可以使用开发者工具里的Performance去查看。

当我们点击btn1时,此时box盒子通过定位的left和top进行循环移动时。

此时我们可以看到细节模块的记录详情。

蓝色(Loading):网络通信和HTML解析

黄色(Scripting):Javascript执行

紫色(Rendering):样式计算和布局,即重排

绿色(Painting):重绘

灰色(Other):其他事件花费的时间

白色(Idle):空闲时间

细节模块有4个面板,Summary面板每个事件都会有,其他三个只针对特定事件会有。

当我们点击btn2时,此时box盒子通过transform属性进行css硬件加速后进行循环移动时。

通过对比我们不难发现,当启用硬件加速时,方块的变换会更加流畅,其样式计算和布局、重绘的时间都会减少。因为GPU参与了渲染过程。

总结

CSS硬件加速是一个强大的前端技术,可以显著提高网页的性能和流畅度。通过启用硬件加速,我们可以将一些渲染任务交给GPU来处理,减轻CPU的负担,从而优化网页的渲染性能。然而,我们需要注意不要滥用硬件加速,避免触发不必要的GPU渲染,以确保真正获得性能提升。在日常的网页开发中,我们可以灵活运用CSS硬件加速,为用户带来更好的浏览体验。