容易被忽略的5个HTML技巧
作者 | Anurag Kanoria
译者 | 王强
策划 | 李俊辰
对于所有 Web 开发人员来说,无论你选择的是哪种框架或后端语言,都需要大量使用 HTML(超文本标记语言)。
各种框架和编程语言可能会此消彼长,但 HTML 永不会过时。只是,就算 HTML 的应用如此广泛,这种语言中还是有不少多数开发人员都不了解的标签和属性。
而且,尽管市面上有各种模板引擎(例如 Pug)可用,但你仍然需要对 HTML 和 CSS 有所了解。
如果你经常使用 CSS,请查看我最近的博客,了解一些鲜为人知却非常有用的 CSS 属性:
https://medium.com/javascript-in-plain-english/6-css-properties-nobody-is-talking-about-e6cab5138d02
我认为,大家最好尽可能使用 HTML 特性来实现所需的功能,尽量不要动用 JavaScript。当然我也承认,HTML 写起来可能会枯燥无味。
虽然许多开发人员每天都在使用 HTML,但他们并没有试着提升自己的技能水平,没有想过真正用好一些鲜为人知的 HTML 特性。
以下是你应该了解的 5 个 HTML 标签和属性:
图像延迟加载可以帮助开发人员提升网站性能和响应速度。
延迟加载可防止设备第一时间加载屏幕上尚不需要的图像。但是,当你向下滚动或靠近图像时,图像就会开始加载。
换句话说,当用户滚动时才加载图像,让图像变为可见,否则就不加载。
这可以通过纯 HTML 轻松实现。
你所要做的就是将 loading= "lazy"属性添加到你的图像文件中。
<img src="image.png" loading="lazy" alt="…" width="200" height="200">
使用谷歌的 Lighthouse 工具,你可以深入了解这一特性可以为你节省的内容加载字节数:
https://developers.google.com/web/tools/lighthouse/
尝试搜索什么事物时获取有用的关联建议确实会很有帮助。
如今,输入建议和自动完成功能相当流行,你一定已经在谷歌和 Facebook 等网站上注意到它们了。
你可以使用 JavaScript 添加输入建议,方法是在输入字段上设置一个事件侦听器,然后将搜索的术语与预定义建议进行匹配。
https://www.w3schools.com/howto/howto_js_autocomplete.asp
但是,HTML 也允许你使用<datalist>标签显示一组预定义的建议。
<label for="country">Choose your country from the list:</label>
<input list="countries" name="country" id="country">
<datalist id="countries">
<option value="UK">
<option value="Germany">
<option value="USA">
<option value="Japan">
<option value="India">
</datalist>
你是否遇到过图像无法按预期缩放的问题?我当然就遇到过很多次。
当你试图构建一个图像展示网站,或使用一个大尺寸图像并将其显示为缩略图时,往往就会发生这种情况。
更改视口宽度时,你可能会注意到某些图像未按预期缩放。
幸运的是,HTML 的<picture>标签使开发人员可以很轻松地解决这一问题,这个标签让你可以添加适合不同宽度的多个图像,而不必只对一张图上下缩放。
<picture>
<source media="(min-width:768px)" srcset="med_flag.jpg">
<source media="(min-width:495px)" srcset="small_flower.jpg">
<img src="high_flag.jpg" alt="Flags" style="width:auto;">
</picture>
如你所见,我们指定了特定图像必须显示的一个最小宽度。此标签与<audio>和<video>标签非常相似。
创建网站索引或站点地图时,这是我最喜欢的标签之一。
例如,如果我要指定 Elon Musk 和 Bill Gates 的 Twitter 内容的 URL,则 URL(域)的开头都会相同,而其后将是他们各自的 ID。
一般来说,我必须将链接与相同的域名一起粘贴两次。
<head>
<base href="https://www.twitter.com/" target="_blank">
</head>
<body>
<img src="elonmusk" alt="Elon Musk">
<a href="BillGates">Bill Gate</a>
</body>
上面的代码将生成一个图像重定向到“https://www.twitter.com/elonmusk”和一个锚标记重定向到“https://www.twitter.com/billgates”。<base>标签必须具有“href”或一个目标属性。
如果要在页面一段时间不活动时,或者第一时间将用户重定向到另一个页面,只需使用纯 HTML 即可轻松实现。
当你打开某些站点时,你可能已经注意到了此特性,看到了“你将在 5 秒钟内被重定向”这一行文字。
<meta http-equiv="refresh" content="4; URL='https://google.com' />
这里的 content 属性指定了重定向倒计时的秒数。值得注意的是,尽管谷歌声称将这种形式的重定向与其他重定向一样对待,但除非确实需要,否则使用这种类型的重定向是不明智的。
因此应该只在某些情况下才使用它,例如在长时间不活动后重定向页面。
HTML 和 CSS 非常强大,你可以只使用两者就构建出色的网站。
但是,尽管人们在大量使用这两种语言,可许多开发人员并没有真正沉浸其中。
除了上面我分享的一些技巧外,还有很多这样的技巧和窍门,当然它们都值得你在自己的项目中尝试。
如果你还计划使用 JavaScript,那么一定要查看我最近的博客,其中讨论了一些可以节省你时间的技巧:
https://medium.com/javascript-in-plain-english/5-modern-javascript-tips-and-tricks-to-save-time-7773aff6be26
学习任何东西并精通它都需要时间、奉献精神和实践,HTML 也不例外。
希望你喜欢阅读我的文章!
点个在看少个 bug 👇