你不可不知的 HTML 优化技巧

2022-11-24 0 811

(点选下方社会公众号,可加速高度关注)

译者:庞德公新浪网时评译者 –  蓝莓城命令行

镜像:http://web.jobbole.com/87908/

怎样提高Web网页的操控性,许多合作开发者从数个各方面来脱身如JavaScript、影像强化、伺服器配置,文件填充或者修正CSS。

很或许HTML 已经达至了一个困局,虽然它是合作开发Web 介面必不容少的核心理念词汇。HTML网页的阻抗也是极重。绝大多数网页平均值须要40K的内部空间,像许多小型中文网站会包涵数以百计的HTML 原素,网页Size会Villamblard。

怎样有效率的减少HTML 标识符的维数和网页原素的数目,责任编辑主要化解了那个难题,从数个各方面如是说了怎样撰写明快,明晰的HTML 标识符,能使得网页读取更加快速,且能在多种不同电子设备中运转较好。

在结构设计和合作开发操作过程中须要遵从下列准则:

内部结构分立:采用HTML 减少内部结构,而并非式样文本;

维持干净:为组织工作流加进标识符校正辅助工具;采用辅助工具或式样科水狼保护标识符内部结构和文件格式

保证可出访: 采用ARIA 特性和Fallback 特性等

试验: 使中文网站在多种不同电子设备中能较好运转,可采用emulators和操控性辅助工具。

你不可不知的 HTML 优化技巧

HTML、CSS 和JavaScript三者的关系

HTML 是用于修正网页内部结构和文本的标记词汇。HTML 不能用于修饰式样文本,也不能在头标签中输入文本文本,使标识符变得冗长和复杂,相反采用CSS 来修饰布局原素和外观比较合适。HTML原素默认的外观是由浏览器默认的式样表定义的,如在Chrome中h1标签原素会渲染成32px的Times 粗体。

三条通用结构设计规则:

采用HTML 来构造网页内部结构,CSS修饰网页呈现,JavaScript实现网页功能。CSS ZenGarden 很好地展示了行为分立。

如果能用CSS或JavaScript实现就少用HTML标识符。

将CSS和JavaScript文件与HTML 分开存放。这可有助于缓存和调试。

文档内部结构各方面也可以做强化,如下:

采用HTML5 文档类型,下列是空文件:

<!DOCTYPE html>

<html>

<head>

<title>Recipes: pesto</title>

</head>

<body>

  <h1>Pesto</h1>

  <p>Pesto isgood!</p>

</body>

</html>

在文档起始位置引用CSS文件,如下:

<head>

  <title>My pesto recipe</title>

  <link rel=“stylesheet”href=“/css/global.css”>

  <link rel=“stylesheet”href=“css/local.css”>

</head>

采用这两种方法,浏览器会在解析HTML标识符之前将CSS信息准备好。因此有助于提高网页读取操控性。

在网页底部body结束标签之前输入JavaScript标识符,这样有助于提高网页读取的速度,因为浏览器在解析JavaScript标识符之前将网页读取完成,采用JavaScript会对网页原素产生积极的影响。

<body>

  <script src=“/js/global.js”>

  <script src=“js/local.js”>

</body>

采用Defer和async特性,脚本原素具有async 特性无法保证会按顺序执行。

可在JavaScript标识符中加进Handlers。千万别加到HTML内联标识符中,比如下面的标识符则容易导致错误且不易于保护:

index.html:

<head>

  <script src=“js/local.js”>

</head>

<body onload=“init()”>

  <buttononclick=“handleFoo()”>Foo</button>

</body>

下面的写法比较好:

index.html:

<head>

</head>

<body>

  <button id=“foo”>Foo</button>

  <script src=“js/local.js”>

</body>

js/local.js:

init();

varfooButton =

document.querySelector(#foo);

fooButton.onclick = handleFoo();

校正

强化网页的一种方法就是浏览器可处理非法的HTML 标识符。合法的HTML标识符很容易调试,且占内存少,耗费资源少,易于解析和渲染运转起来更快。非法的HTML标识符让实现响应式结构设计变得异常艰难。

当采用模板时,合法的HTML标识符显得异常重要,经常会发生模板单独运转较好,当与其他模块集成时就报各种各样的错误,因此一定要保证HTML标识符的质量,可采取下列措施:

在组织工作流中加进校正功能:采用校正插件如HTMLHint或SublineLinter帮助你检测标识符错误。

采用HTML5文档类型

保证HTML的层次内部结构易于保护,要避免原素嵌套处于左开状态。

保证加进各原素的结束标签。

删除不必要的标识符 ;没有必要为自关闭的原素加进结束标签;Boolean 特性不须要赋值,如果存在则为True;

<video src=”foo.webm” autoplay=”” controls=””/>

标识符文件格式

文件格式一致性使HTML标识符易于阅读,理解,强化,调试。

语义标记

语义指意义相关的事物,HTML 可从网页文本中看出语义:原素和特性的命名一定程度上表达了文本的角色和功能。HTML5 引入了新的语义原素,如<header>,<footer>及<nav>。

选择合适的原素来撰写标识符可保证标识符的易读性:

采用<h1>(<h2>,<h3>…)表示标题,<ul>或<ol>实现列表

注意采用<article> 标签之前应加进<h1>标签;

选择合适的HTML5语义原素如<header>,<footer>,<nav>,<aside>;

采用<p>描述Body 文本,HTML5 语义原素可以形成文本,反之不成立。

采用<em>和<strong>标签替代<i>和<b>标签。

采用<label>原素,输入类型,占位符及其他特性来强制校正。

将文本和原素混合,并作为另一原素的子原素,会导致布局错误,

例如:

<div>Name: <input type=”text” id=”name”></div>

换种写法会更好

<div>

   <label for=“name”>Name:</label><input type=“text”id=“name”>

</div>

布局

要提高HTML标识符的操控性,要遵从HTML 标识符以实现功能和为目标,而并非式样。

采用<p>原素修饰文本,而并非布局;默认<p>是自动提供边缘,而且其他式样也是浏览器默认提供的。

避免采用<br>分行,可以采用block原素或CSS显示特性来代替。

避免采用<hr>来加进水平线,可采用CSS的border-bottom 来代替。

不到关键时刻不要采用div标签。

尽量少用Tables来布局。

可以多采用Flex Box

采用CSS 来修正边距等。

CSS

虽然责任编辑讲解的是怎样强化HTML,下面如是说了许多采用css的基本技能:

避免内联css

最多采用ID类 一次

当涉及数个原素时,可采用Class来实现。

以上就是责任编辑如是说的强化HTML标识符的基本功,一个高质量高操控性的中文网站,往往取决于对细节的处理,因此我们在日常合作开发中,能考虑到用户体验,后期保护等各方面,则会产生更高效的合作开发。

时评译者简介 ( 点选 → 加入时评译者

蓝莓城命令行:蓝莓城成立于1980年,是全球最大的命令行提供商、微软公司认证的金牌合作伙伴。

高度关注「前端大全」

看更多精选前端技术文章

↓↓↓

你不可不知的 HTML 优化技巧

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务