每年都有新的CSS属性被标准化,并在主流浏览器中可用。 它们旨在使Web开发人员的工作变得轻松,创造出新颖美丽的网站。
在这篇文章中,我将介绍5个相对较新的CSS属性,你可能从来没有听说过,我觉得很有趣。 本文的目的是带领你总览这些CSS的属性,告诉你可以使用哪些值,它们的使用场景,还有一些例子。
具体来说,这五个CSS属性可以分为以下三类:
在开始之前,我想提醒一下,当处理新的CSS属性时,检查他们的支持和潜在的跨浏览器问题是一个好习惯。在这方面 can i use是一个高效的工具。
1. font-display
font-display属性允许您控制可下载字体在完全加载之前呈现的方式,或者下载失败时的处理方案。了解如何使用自定义字体以及加载它们需要多少时间是非常重要的一点。实际上,在浏览器等待自定义字体加载的过程中,用户在一定的时间内只能看到空白的内容。我们知道,如果内容加载过慢,用户将会离开页面。内容空白的时间取决于所使用的浏览器,通常为3秒左右。但是对于网页来说,这段时间是相当长的。
在过去几年中,开发人员通过使用基于JavaScript的解决方案,如Font Face Observer 或 Font Loading API。如今,“font-display”会使情况得以改善。
font-display属性在@font-face声明时使用。借助它,我们可以通过一行简单的CSS来控制字体的显示方式,而不需要使用基于JavaScript的解决方案。这意味着我们的网页可以减小体积,(很可能)提高性能。
在使用font-display时,您可以使用以下五个值之一:
@font-face { font-family: AmazingFont; src: url('/fonts/amazingfont.woff2') format('woff2'), url('/fonts/amazingfont.eot') format('eot'); font-display: fallback; } h1 { font-family: AmazingFont, Arial, sans-serif; }
这个功能在浏览器中的支持程度仍然很低,但情况会很快得以改善。在使用浏览器前缀的情况下, Chrome 49+,Firefox 46+和Opera 36+都支持这个属性。 不过,未来Chrome 60和Opera 47将使得该属性无需前缀标志(译者注:文章写作时,这两个版本还没有发出)。
如果您想问当浏览器还未支持这个属性的时候,使用font-display将会发生什么?答案是这些浏览器会忽略该属性,字体渲染的行为将与以前一样。 如果您真的希望改善用户的体验,即使浏览器不支持该属性,您也可以使用到上述基于JavaScript的解决方案之一。
2. contain
如果您构建具有许多小部件(包括第三方)的复杂网站,则新的contain 属性可能是优化网页的好工具。 如果您考虑在构建当今网页时大量使用Web Components和React组件,此属性可能会特别有用。