网站建设多年以来,我们的开发者一直在利用剪辑路径、SVG遮罩和脆弱的变通方法来绕过 的限制,只为获得除圆角以外的效果。新特性终于改变了这一点,打开了斜角、挖角和弯曲角的大门。
当我刚开始做网站时,圆角需要五张背景图,每个角落一张,主体一张,还得祈祷客户不要要求不同的半径。然后这个网站发布了,整个网站都松了口气。那已经是十五年前的事了,说实话,我们一直顺势而为。就像那时一样,我希望我们能把这个功能看作是逐步扩展到其他浏览器的改进。我们喜欢像其他任何一样的好东西,但事实是它只给我们一个形状。圆形。想要斜角?剪辑路径。凹陷的票据边缘?SVG遮罩。Squircle应用图标?一个精心调校的SVG,你希望没人会让你做动画。我们这些年一直在绕过这些限制,这些改版带来了真正的权衡:边框不遵循剪辑路径,阴影被切断,最终代码脆弱,一旦有人改变填充值就会崩溃。
现在新的CSS改变了这一切,该corner-shape属性是 的伴侣。它不会取代它;它改变了创造曲线的形状。没有 ,则无效。但它们在一起是强大的组合。你可以在每个角落设置不同的数值,就像:border-radius,你也可以使用superellipse()函数具有用于细粒度控制的数值参数。所以问题可能是:为什么不把这个属性叫做“”?首先,这完全是另一个概念,我们很快会尝试。其次,它不仅适用于边界,比如轮廓、框阴影和背景。这是属性永远做不到的事情。
这正是渐进增强的完美候选,就像Internet Explorer 6时代一样。基线应使用我们已知的技术,比如 、 掩码,并且有意地看起来良好。然后,对于支持 的浏览器,我们升级体验。有时这可以简单到提供一个更基础的默认设置;有时可能需要更简单一些。没有备选横幅,也没有“你的浏览器不支持这个”的提示。只有两层设计:好的和更好的。我觉得展示一些例子会很好。市面上已经有几个例子了,但我希望能在这些基础上再补充一些灵感。
这正是这些演示构建的全部意义所在。这一层为每个浏览器提供一个精致、完整的界面。这一层是支持浏览器的额外福利,包裹在 。我经历过只有Firefox才有的时代。似乎我们忘了,并非每个网站在每个浏览器中都必须完全相同。我们真正想要的是:没有“破损”的布局,也没有“您的浏览器不支持”的提示,而是拥有一个美妙的体验,能顺畅运行,并逐步提升额外的乐趣。换句话说,我们采用了两个设计层次:良好和更好。
我们反复强调的做法是:不要为了设计而设计,也不要围绕缺乏它来设计。设计一个坚实的基线,然后加以增强。每个演示版的演示层都是有意为之设计的。它不是等待更好浏览器的退化版本。这是一个完整的设计。这一层增加了单靠自己无法表达的维度。