1分钟CSS小技巧,让界面看起来贵10倍

摘要:同样是个按钮,为什么有的看起来舒服,有的看着就廉价?差别就在层次感上。你看3D电影比2D电影看着过瘾,就是因为有深度。

同样是个按钮,为什么有的看起来舒服,有的看着就廉价?差别就在层次感上。

你看3D电影比2D电影看着过瘾,就是因为有深度。界面也一样。平的界面像张纸,有层次的界面像雕塑,自然显得更高级。


核心秘诀就一句话:两层阴影

苹果的东西为什么看着高级?

原理其实简单,就跟化妆一样。化妆怎么化?先打底提亮,再上阴影让脸立体。界面也是这个道理。

第一层阴影,让元素"浮起来"。第二层阴影,让元素"站得住"。

就这么简单。但效果差很多。


代码怎么写

来看几个例子。

1. 卡片悬停效果

先写基础样式:

.card {
  background: #f5f5f7;
  border-radius: 10px;
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.5),  /* 上边缘的高光 */
    0 4px 6px rgba(0, 0, 0, 0.12);           /* 下方的投影 */
}

鼠标放上去的时候,让卡片稍微抬起来:

.card:hover {
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    0 10px 20px rgba(0, 0, 0, 0.16);
  transform: translateY(-2px);
}

悬停时往上移2个像素,阴影变大变深。这个小动画不用任何JS库,浏览器自己就能跑得很顺。用户鼠标滑过的时候,感觉界面会"回应"他,一下子就显得高级了。

2. 标签页激活效果

再看标签页。哪个是当前选中的,要一眼看出来。

.tab {
  background: #e4e6e9;
  padding: 8px 16px;
  border-radius: 8px;
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 2px 4px rgba(0, 0, 0, 0.08);
}

.tab.active {
  background: #f5f5f7;
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 3px 6px rgba(0, 0, 0, 0.12);
}

激活的标签背景更亮,阴影更深,看着就像浮在其他标签上面。用户不用猜就知道当前在哪。


为什么两层阴影就够了

很多人以为好界面要复杂的渐变、定制的图标、大改设计。其实不是。

好设计往往来自这些不起眼的小细节。

单层阴影的界面,看着就是一块平板贴在上面。两层阴影就不一样了。高光让边缘有亮度,投影让底部有深度。一高一低,一明一暗,层次就出来了。

就像画画,光有亮部不行,光有暗部也不行。亮暗配合,东西才立体。


更多能用的地方

这种两层阴影的用法,不止卡和标签。

按钮也可以。普通状态一层阴影,点击的时候把内阴影调一下,让按钮有按下去的视觉反馈。

弹窗也可以。周围加一层大的外阴影,中间的内容再加一层小的内高光,弹窗就显得又深又精致。

输入框也可以。聚焦的时候加内发光和外阴影,用户就知道当前在输哪个框。


几点注意

阴影不是越重越好。太重了像廉价塑料玩具,太轻了又看不出效果。一般外阴影用半透明的黑色,内高光用半透明的白色。黑和白都别太纯,带点透明度才自然。

另外颜色也要搭。深色背景上,高光可以用半透明白,阴影可以用半透明白或者带点背景色的黑。别生搬硬套,得配合实际颜色调。

移动端要注意性能。阴影太多太复杂,低端手机会卡。一般用两层就够了,别堆太多层。


总结

颜色图层加柔和阴影,就能让廉价界面变高级。就这么简单。

现在打开你的代码,找个卡片或者按钮试试。改两行阴影,不用1分钟,效果自己看。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_13383