你怎么能提高网页性能?
大多数开发者会通过JavaScript和图片来优化,通过服务器配置,压缩文件和合并文件 - 甚至调整CSS(合并小图片)。
可怜的HTML老是被忽视,尽管它一直是网络的核心语言。
HTML正在变得越来越大。排名前100的网站每个HTML页面大多在40K左右。亚马逊和雅虎使用上千个HTML页面。在youtube.com主页面,HTML元素高达3500个。
减少的HTML复杂性和一个页面的元素数量并不会明显提高解析时间 - 但HTML是构建极速网页,和适应不同设备并影响成功的一个关键性的因素。
在本文中,您将了解如何编写简洁干净的HTML,使您能够创建快速加载并支持多种设备的网站,将易于调试和维护。
写代码的方法并不是只有一种-尤其是HTML。这里只是讲解一般经验,但并不是唯一正确的选择。
HTML, CSS 和 JavaScript
HTML是一种标记语言,用于表示结构和内容。
HTML不应被用来显示风格和样式。不要为了显得“更大”把文字写在标题标签(h1~h6)中,或只是为了缩进而使用blockquotes元素。相反,使用CSS来改变元素的外观和布局。
HTML元素的默认外观是通过浏览器的默认样式实现的:Firefox,Internet Explorer和Opera均不一样。例如,在Chrome中默认h1元素呈现为32px的大小。
三个基本原则:
使用HTML表示结构,CSS用来表现不同样式的风格和主题。JavaScript来响应用户行为。
使用HTML,必要时借助CSS,并且在不得己时再添加JavaScript。例如:在许多情况下,你可能使用HTML表单进行验证,使用CSS或SVG来实现动画。
将CSS和JavaScript从你的HTML代码中分离。让他们能够缓存,这使代码更易于调试。在生产中,CSS和JavaScript是可以压缩合并的,应该作为你Build系统的一部分。 注* 参见 JavaScript构建(编绎)系统大比拼
Document文档结构
使用 HTML5的document type:
<!DOCTYPE html> <html> <head> <title>Recipes: pesto</title> </head> <body> <h1>Pesto</h1> <p>Pesto is good!</p> </body> </html>
在页面最头部引用CSS文件,如在head元素中:
<head> <title>My pesto recipe</title> <link rel="/css/global.css"> <link rel="css/local.css"> </head>
这样,浏览器就可以在解析HTML前预先加载样式而不会呈现一个混乱的页面布局。
把JavaScript放在页面的最底部, 在body封闭之前。这将提高页面渲染时间,因为浏览器可以在JavaScript装载前将页面渲染出来:
<body> ... <script src="/js/global.js"> <script src="js/local.js"> </body>
在JavaScript添加事件处理。 不要在HTML中添加。这样非常难以维护,比如:
index.html: <head> ... <script src="js/local.js"> </head> <body onload="init()"> ... <button onclick="handleFoo()">Foo</button> ... </body>
这样就好多了:
<head> ... </head> <body> ... <button id="foo">Foo</button> ... <script src="js/local.js"> </body>
js/local.js:
init(); var fooButton = document.querySelector('#foo'); fooButton.onclick = handleFoo();
合法的HTML
Web网页成功的一个主要因素就是浏览器可以处理无效的HTML。浏览器还有一些如何呈现无效代码的标准化规则。
但是,这不你放任的理由。有效的HTML更容易调试,往往文件更小,速度更快,占用资源更少,因为它们渲染更快。无效的HTML让响应式设计难以实施。
使用模板的时候写有效的HTML是特别重要的。
在你的BUILD系统中验证HTML:使用验证插件,如HTMLHint和SublimeLinter来检查你HTML的语法。
使用HTML5文档类型。
请务必保持HTML的层次:正确嵌套元素,确保没有任何未关闭的元素。它可以帮助调试者添加注释。
<p id="foobar"> ... </p> <!-- foobar ends -->
请务必在非自封闭的元素后加上结束标签,比如,下面的也可以工作:
<p>Pesto is good to eat... <p>...and pesto is easy to make.
但是下面的写法可以避免错误,段落层次更加明显:
<p>Pesto is good to eat...</p> <p>...and pesto is easy to make.</p>
items元素(li)并不是必须封闭的,有些非常聪明的的程序员会写成这样,无论如何,list元素(ul)是必须封闭的。
<ul> <li>Basil <li>Pine nuts <li>Garlic </ul>
有一点你必须注意video和audio元素。他们不是自封闭的:
<!-- 错误: liable to cause layout grief --> <video src="foo.webm" /> <!-- 正确 --> <video src="foo.webm"> <p>Video element not supported.</p> </video>
相反,通过删除不必要的代码HTML页面会变得更干净
没有必要为自封闭元素添加"/",像img等
设置属性是没有值的,如果不加属性的话(这种情况下,它不会自动播放,没有控制控件),
video,它是没有任何属性的
<video src="foo.webm">
下面两种更好
<video src="foo.webm" autoplay="false" controls="false"> <video src="foo.webm" autoplay="true" controls="true">
这种可读性更强
<video src="foo.webm" autoplay controls>
stylet和script标签不需要type属性;默认就是css和javascript
优化协议地址更好(去除置http或https,它会根据当前协议自动配)
<a href="//en.wikipedia.org/wiki/Tag_soup">Tag soup</a>
增强可读性,如,第一眼看上去就像是个标题
<h2><a href="/contact">Contact</a><h2>
而这种则像个链接
<a href="/contact"><h2>Contact</h1></a>
应该使用小写
<A HREF="/">Home</A>
大小写混合看上去更恶心
<H2>Pesto</h2>
语义标记
“语义”意思是跟含义相关
HTML应该标记有意义的内容:元素和描述的内容相符。
HTML5引入了一些新的‘语义元素’像
使用正确的元素表达正确的内容对于可访问性是有帮助的。
使用
,代表标题, 或代表lists
注意的标题应该以
使用,
使用
写正文
使用 和 代替 和 表示强调
表单使用
混合文字和元素会导至布局的问题
<p>Name: <input type="text"></p>
最好用下面的表示
<p><label>Name:</label><input type="text"></p>
布局
HTML应该使用有意义的组织结构,而不是通过样式来实现。
使用
元素代表文本,而不是用来布局。
避免使用
来换行,使用块级元素和CSS来代替。
避免使用水平分隔线
。使用CSS的border样式来控制。
不要使用不必要的p。W3C对p的定义是排序的是最后一个元素。
要了解哪些元素是块级元素,避免在p中放置不必要的块级元素。将一个list放到p中是没有必要的。
不要使用table来布局。
Flex box是被广泛推荐的,能用就用吧。
使用CSS的padding和margin,理解盒子模型。
CSS
这篇文章是关于HTML的,但是这里有一些基本的CSS小贴士。
避免内嵌的CSS。出于性能考虑,CSS可以在BUILD时内嵌到你的网页中。
避免ID出现重复。
如果你想对多个元素应用某个样式,那么请使用class,在父级元素上使用class比在子级上好:
<!-- 有点笨 :( -->
<ul>
<li class="ingredient">Basil</li>
<li class="ingredient">Pine nuts</li>
<li class="ingredient">Garlic</li>
</ul>
<!-- 更好 :) -->
<ul class="ingredients">
<li>Basil</li>
<li>Pine nuts</li>
<li>Garlic</li>
</ul>
可访问性
使用语义元素
提供向后兼容
在链接上添加title属性,而且应该避免与link文本出现相同的内容
在输入元素上添加type和placeholder属性
原文地址: samdutton.wordpress.com
以上是如何写出高性能的HTML网页的详细内容。更多信息请关注PHP中文网其他相关文章!
代表标题, 或代表lists
注意的标题应该以
使用,
使用
写正文
使用 和 代替 和 表示强调
表单使用
混合文字和元素会导至布局的问题
<p>Name: <input type="text"></p>
最好用下面的表示
<p><label>Name:</label><input type="text"></p>
布局
HTML应该使用有意义的组织结构,而不是通过样式来实现。
使用
元素代表文本,而不是用来布局。
避免使用
来换行,使用块级元素和CSS来代替。
避免使用水平分隔线
。使用CSS的border样式来控制。
不要使用不必要的p。W3C对p的定义是排序的是最后一个元素。
要了解哪些元素是块级元素,避免在p中放置不必要的块级元素。将一个list放到p中是没有必要的。
不要使用table来布局。
Flex box是被广泛推荐的,能用就用吧。
使用CSS的padding和margin,理解盒子模型。
CSS
这篇文章是关于HTML的,但是这里有一些基本的CSS小贴士。
避免内嵌的CSS。出于性能考虑,CSS可以在BUILD时内嵌到你的网页中。
避免ID出现重复。
如果你想对多个元素应用某个样式,那么请使用class,在父级元素上使用class比在子级上好:
<!-- 有点笨 :( -->
<ul>
<li class="ingredient">Basil</li>
<li class="ingredient">Pine nuts</li>
<li class="ingredient">Garlic</li>
</ul>
<!-- 更好 :) -->
<ul class="ingredients">
<li>Basil</li>
<li>Pine nuts</li>
<li>Garlic</li>
</ul>
可访问性
使用语义元素
提供向后兼容
在链接上添加title属性,而且应该避免与link文本出现相同的内容
在输入元素上添加type和placeholder属性
原文地址: samdutton.wordpress.com
以上是如何写出高性能的HTML网页的详细内容。更多信息请关注PHP中文网其他相关文章!
- 代表lists
注意
使用
使用
写正文
使用 和 代替 和 表示强调
表单使用
混合文字和元素会导至布局的问题
<p>Name: <input type="text"></p>
最好用下面的表示
<p><label>Name:</label><input type="text"></p>
布局
HTML应该使用有意义的组织结构,而不是通过样式来实现。
使用
元素代表文本,而不是用来布局。
避免使用
来换行,使用块级元素和CSS来代替。
避免使用水平分隔线
。使用CSS的border样式来控制。
不要使用不必要的p。W3C对p的定义是排序的是最后一个元素。
要了解哪些元素是块级元素,避免在p中放置不必要的块级元素。将一个list放到p中是没有必要的。
不要使用table来布局。
Flex box是被广泛推荐的,能用就用吧。
使用CSS的padding和margin,理解盒子模型。
CSS
这篇文章是关于HTML的,但是这里有一些基本的CSS小贴士。
避免内嵌的CSS。出于性能考虑,CSS可以在BUILD时内嵌到你的网页中。
避免ID出现重复。
如果你想对多个元素应用某个样式,那么请使用class,在父级元素上使用class比在子级上好:
<!-- 有点笨 :( --> <ul> <li class="ingredient">Basil</li> <li class="ingredient">Pine nuts</li> <li class="ingredient">Garlic</li> </ul> <!-- 更好 :) --> <ul class="ingredients"> <li>Basil</li> <li>Pine nuts</li> <li>Garlic</li> </ul>
可访问性
使用语义元素
提供向后兼容
在链接上添加title属性,而且应该避免与link文本出现相同的内容
在输入元素上添加type和placeholder属性
原文地址: samdutton.wordpress.com
以上是如何写出高性能的HTML网页的详细内容。更多信息请关注PHP中文网其他相关文章!

HTML代码可以通过在线验证器、集成工具和自动化流程来确保其清洁度。1)使用W3CMarkupValidationService在线验证HTML代码。2)在VisualStudioCode中安装并配置HTMLHint扩展进行实时验证。3)利用HTMLTidy在构建流程中自动验证和清理HTML文件。

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML的功能是定义网页的结构和内容,其目的在于提供一种标准化的方式来展示信息。1)HTML通过标签和属性组织网页的各个部分,如标题和段落。2)它支持内容与表现分离,提升维护效率。3)HTML具有可扩展性,允许自定义标签增强SEO。

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。

HTML、CSS和JavaScript在网页开发中的角色分别是:HTML负责内容结构,CSS负责样式,JavaScript负责动态行为。1.HTML通过标签定义网页结构和内容,确保语义化。2.CSS通过选择器和属性控制网页样式,使其美观易读。3.JavaScript通过脚本控制网页行为,实现动态和交互功能。

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载
最流行的的开源编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!