《Web前端开发最佳实践》——3.4 停止使用不标准的标签和属性,简化HTML代码

简介:

本节书摘来自华章计算机《Web前端开发最佳实践》一书中的第3章,第3.4节,作者:党 建 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 停止使用不标准的标签和属性,简化HTML代码

W3C在制定的HTML4和HTML5标准中有独立的章节来说明哪些是不被推荐的标签和属性,这些标签和属性是Web互联网发展早期HTML标准混乱和浏览器“各自为政”的产物,有些标签甚至使用率颇高,比如滚动效果标签< marquee >,尽管在现在看来其效果不好,但在当时几乎所有的网站都会使用这样的效果,风靡一时。但是随着Web互联网的飞速发展,人们对Web的认识也逐渐提高,也开始关注如何让网页HTML代码更统一、更简洁、更易理解等,不在局限于单纯的外观。在此过程中,一些标签和属性逐渐被更好的方案代替,这些标签也不被标准所推荐,甚至是从标准规范中移除,有些特性在浏览器中也不被继续支持。从这些标签和属性的作用来看,导致不被推荐的原因主要有如下几个。
(1)标签没有实际的语义,仅仅是用于设置样式
不推荐使用单纯设置样式的标签,如basefont、big、center、font等。应该通过CSS设置样式,让HTML标签功能更单一。不推荐的示例如下:

<!--不推荐代码:不推荐使用单纯设置样式的标签,应该通过CSS设置样式-->
<font color=blue>don't use it!</font>
<big>don't use it!</big>
<center>don't use it!</center>

不推荐在HTML标签中添加样式属性,如iframe、img、input、div等标签中的align属性,body标签上的background属性,td和tr标签上的height、width、nowrap、bgcolor、valign等属性,iframe标签中的frameborder、marginheight、scrolling等属性。此类属性应该废弃,并通过添加CSS样式来实现相同的效果。不推荐的示例如下:

<!—不推荐代码:标签中添加border、width、height等样式属性-->
<img src="#" alt="demo" border="1" width="194" height="37" />
<div id="focusViwer" align=center></div>

不推荐使用< blink >或< marquee > (闪动或滚动)。这两个标签的职能已经超出了HTML本身,并且也存在浏览器的兼容问题。以如今的审美来说,这两个标签实现的效果不佳,如果一定要这样的效果,可以通过JavaScript代码来实现,并且效果会更好,如可以使用jQuery Marquee插件。不推荐的示例如下:

<!--不推荐代码:效果不佳,并且存在浏览器兼容问题,不推荐使用,如果需要实现这样的效果,可以通过JavaScript代码来实现,并且效果会更好-->
<blink>don't use it!</blink>
<marquee scrollamount=3 scrolldelay=100 >don't use it</marquee>

(2)让HTML标签具有更好的语义
不推荐使用< b >和< i >显示黑体字和斜体,推荐使用更具有语义的< strong >和< em >,如果单纯是为了样式,推荐用CSS样式定义font-weight 和 font-style,让页面更简洁。类似的不推荐标签还有< s > 和< strike >,这两个标签是给文字添加删除线的,可以用< del >和< ins >来代替。
不推荐示例:

<!--不推荐代码:无语义的标签,单纯设置样式-->
<b>don't use it!</b>
<i>don't use it!</i>
<s>?don't use it!</s>
<strike>don't use it!</strike>

推荐示例:

<!--推荐代码:使用具有语义的标签,如果单纯为了样式,则应该通过CSS来设置-->
<strong>important</strong>
<em>emphasize</em>
<del>deleted</del>
<ins>insert</ins>

(3)移除不常用的HTML标签
此类标签包括acronym、applet、dir等,废弃的原因是使用率极低或者是语义有歧义,并且有其他更好代替方案可以使用。例如,表达缩写的标签< acronym >,其语义模糊,开发者更常用来代替;开发者更喜欢使用< ul >而不是 < dir >。

相关文章
|
1天前
|
Web App开发 缓存 前端开发
如何优化前端网页加载速度:最佳实践和工具推荐
本文探讨了如何通过采用最佳实践和利用先进的工具来优化前端网页加载速度。从压缩资源到使用CDN,从减少HTTP请求到利用缓存策略,我们将介绍一系列提高网页性能的技术手段。同时,我们还将推荐一些广受好评的工具,帮助开发者更轻松地实施这些优化策略。
|
1天前
|
前端开发
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
|
2天前
|
缓存 前端开发 JavaScript
如何优化前端性能:最佳实践与工具推荐
在当今互联网时代,用户对网页加载速度和性能的要求越来越高。本文将介绍一些优化前端性能的最佳实践,包括代码压缩、资源合并、懒加载等技术,并推荐一些实用的工具,帮助开发者提升网页加载速度和用户体验。
|
3天前
|
前端开发 数据安全/隐私保护 计算机视觉
前端 基础标签
前端 基础标签
6 0
|
5天前
|
前端开发 JavaScript 开发者
新一代前端框架:革命性的Web开发利器
传统的前端框架在满足日益复杂的Web开发需求上逐渐显露出局限性,而新一代前端框架的出现,以其革命性的设计和功能,重新定义了Web开发的标准。本文将介绍这些新一代前端框架的特点和优势,并探讨它们在实际项目中的应用。
|
9天前
|
JavaScript 前端开发 UED
【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
【5月更文挑战第2天】【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
|
9天前
|
JavaScript 前端开发 索引
【Web 前端】jQuery 里的 each() 是什么函数?你是如何使用它的?
【5月更文挑战第2天】【Web 前端】jQuery 里的 each() 是什么函数?你是如何使用它的?
|
9天前
|
存储 前端开发 JavaScript
【Web 前端】如何找到所有 HTML select 标签的选中项?
【5月更文挑战第2天】【Web 前端】如何找到所有 HTML select 标签的选中项?
|
9天前
|
JavaScript 前端开发 C++
【Web 前端】JavaScript window.onload 事件和 jQuery ready 函数有何不同?
【5月更文挑战第2天】【Web 前端】JavaScript window.onload 事件和 jQuery ready 函数有何不同?
|
9天前
|
前端开发 JavaScript
【Web 前端】$(document).ready() 是个什么函数?为什么要用它?
【5月更文挑战第2天】【Web 前端】$(document).ready() 是个什么函数?为什么要用它?