《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 >。

相关文章
|
JavaScript 前端开发 Java
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
891 72
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
|
10月前
|
JavaScript 前端开发 安全
Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
每日激励:“如果没有天赋,那就一直重复”。我是蒋星熠Jaxonic,一名执着于代码宇宙的星际旅人。用Vue 3与TypeScript构建高效、可维护的前端系统,分享Composition API、状态管理、性能优化等实战经验,助力技术进阶。
1279 1
Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
|
移动开发 前端开发 JavaScript
前端web创建命令
本项目使用 Vite 搭建 Vue + TypeScript 开发环境,并基于 HTML5 Boilerplate 提供基础模板,快速启动现代前端开发。
272 2
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1289 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
数据采集 数据处理
将html_table2结果转化为tibble的最佳实践
本文介绍了如何使用 `html_table2` 和 `tibble` 进行网页表格数据的采集和处理。通过结合代理 IP 技术,展示了如何高效地从汽车之家网站(https://www.autohome.com.cn/)抓取汽车品牌和价格信息,并将其转化为适合分析的 `tibble` 格式。文章详细讲解了数据清洗和转换的最佳实践,提供了完整的代码示例。
337 11
将html_table2结果转化为tibble的最佳实践
|
移动开发 HTML5
HTML5 表单属性3
`&lt;input&gt;` 标签的 `formaction`、`formenctype` 和 `formmethod` 属性分别用于指定表单提交的 URL 地址、数据编码类型和提交方法,这些属性可覆盖 `&lt;form&gt;` 标签中的相应属性,并且主要适用于 `type=&quot;submit&quot;` 和 `type=&quot;image&quot;` 的输入类型。
|
移动开发 JavaScript 前端开发
HTML5 表单属性7
`pattern` 属性使用正则表达式验证 `&lt;input&gt;` 元素的值,适用于 `text`, `search`, `url`, `tel`, `email`, 和 `password` 类型。
|
移动开发 UED HTML5
HTML5 表单属性6
`min`、`max` 和 `step` 属性用于限制 `&lt;input&gt;` 标签中的数值或日期范围。例如,可以设置日期选择器的最早和最晚日期,或限制数字输入框的值范围。`multiple` 属性允许在 `&lt;input&gt;` 中选择多个值,适用于邮箱和文件类型。这些属性增强了表单控件的功能性和用户体验。
|
移动开发 HTML5
HTML5 表单属性4
`formnovalidate` 属性是一个布尔属性,用于 `&lt;input&gt;` 元素,指示该输入在表单提交时不需验证,可覆盖 `&lt;form&gt;` 元素的 `novalidate` 属性,常与 `type=&quot;submit&quot;` 一起使用。示例中展示了如何通过两个提交按钮(一个使用验证,另一个不使用)实现不同的表单提交方式。
|
移动开发 HTML5
HTML5 表单属性5
`height` 和 `width` 属性用于 `&lt;input&gt;` 标签中的 `image` 类型,定义图像的高度和宽度。

热门文章

最新文章