曾经有一段时间,我感到网络发展速度之快让我不知所措。似乎每天都会发布新的插件、框架、技术或语言特性。我相信,为了作为一个自由职业者生存下来并与他人竞争,我必须学习每个人都擅长的东西:webpack、React、Angular、SVG、Houdini、CSS Grid Layout、ES6,等等。活跃在 Twitter 上和参加会议并没有帮助,因为我不断地接触到所有新事物。
放手
在某个时刻,我放手了。我决定自己无法跟上。从职业角度来看,这对我没有任何改变,因为实际上,没有人期望我无所不知,而且我这种印象本来就只存在于我的圈子里。放慢速度是一个明智的决定,因为它不仅减轻了心理压力,还帮助我专注于我真正想学习的东西。我仍然阅读新闻通讯、博客和 Twitter,并且仍然偶尔花一些时间尝试新事物,但我这样做没有压力。我试图保持最新状态,但我没有强迫自己必须了解所有东西。
过去几年我一直就是这样处理网络发展趋势的,但最近,尤其是在今年,我学到了一些新东西。它不是框架或语言——而是这样一个见解:在我们对创新和进步的渴望中,我们忽略了借鉴 HTML、CSS 和 JavaScript 今天提供的众多功能。换句话说:如果我们回顾过去而不是展望未来,我们可以学到很多东西。
不要追逐瀑布
我说的是忽视,因为我相信在我们认为自己了解的前端语言和我们实际上应该了解的东西之间存在着巨大的差距。
HTML
检查网站并评估其前端质量是我的工作的一部分,也是我的爱好。我查看了许多网站的底层代码,并且只能证实网络无障碍专家每天都在宣讲的内容:大多数 HTML 文档都处于糟糕的状态。如果你不相信我,只需查看数据即可。
- 98.1% 的前 1,000,000 个主页都存在可检测到的 WCAG 2 故障。
- 数千个网站包含
<h7>
和<h8>
元素。 - 在标题和元数据之后,div 是最受欢迎的元素。
- 平均而言,我们只使用了 110 多个可用元素中的大约 30 个。
了解 HTML 语法和了解如何正确使用它之间存在巨大差异。在编写结构良好、语义化的 HTML 文档方面,我们都可以进行一些复习。在 2020 年,我花费了大量时间学习 HTML,我希望我构建的网站用户能够从我的见解中受益。
我在 2020 年学习到的两件关于 HTML 的最喜欢的事情
download
属性中定义一个值来更改可下载文件的名称。
可以通过在<a href="files/yxcvc27.pdf" download="report.pdf">Download (2MB)</a>
value
属性更改有序列表中的编号。
可以使用<ol>
<li value="3">C</li>
<li value="2">B</li>
<li value="1">A</li>
</ol>
CSS
几乎每次我在MDN 或CSS-Tricks 上查找 CSS 属性时,我都会发现一些新东西。自己试试。搜索margin
、list-style-type
或color
。我相信你会学到一些东西。
我在 2020 年学习到的关于 CSS 的内容列表很长,以下是我最喜欢的两点。
url()
函数作为content
属性的值(的一部分)。
可以使用div::before {
content: url('marker-icon.png');
}
可以在 CSS 中实现原生平滑滚动。
// Animate scrolling only if users don’t prefer reduced motion
@media (prefers-reduced-motion: no-preference) {
html {
scroll-behavior: smooth;
}
// Add some spacing between the target and the top of the viewport
:target {
scroll-margin-top: 0.8em;
}
}
JavaScript
我定期编写 JavaScript,但它不是我的核心优势,因此我一直在学习关于它的新东西。以下是我今年最喜欢的两点
nomodule
属性仅在不支持 JavaScript 模块的浏览器中运行 JavaScript 代码。
可以使用<script nomodule>
console.log('This browser doesn’t support JS Modules.');
</script>
<script type="module">
console.log('This browser supports JS Modules.');
</script>
结论
HTML 是每个网站的支柱;了解如何编写语义化文档应该是每个 Web 开发人员的首要任务。CSS 在一定程度上非常复杂,为了学习新概念,我们必须了解它们与旧技术的区别以及它们解决了哪些问题。JavaScript 框架和库层出不穷,但它们都共有的一个特点是它们都是用原生 JavaScript 编写的。
在 2020 年,我重新学习了一些我已经忘记的东西,并发现了关于已建立的元素和属性的新东西。如果你只是寻找,就会发现很多隐藏的知识。我将在 2021 年对此进行扩展,因为有很多很棒的东西可以发现。