在css中设计好看的阴影

这篇具有很好参考价值的文章主要介绍了在css中设计好看的阴影。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在css中设计好看的阴影

在本文中,我们将学习如何将典型的盒子阴影转换为更好看的的阴影。

在css中设计好看的阴影,css,css,前端

统一角度

当我们想要一个元素有阴影时,会添加box-shadow属性并修改其中的数字,直到满意为止。

问题是,通过像这样单独创建每个阴影,我们最终会得到一堆不协调的阴影。如果我们的目标是创造深度幻觉,我们需要每个阴影都匹配。否则,它看起来就像一堆模糊的边界:

在css中设计好看的阴影,css,css,前端
在自然界中,阴影是从光源投射出来的。阴影的方向取决于灯光的位置。一般来说,我们应该为页面上的所有元素决定一个单一的光源。该光源通常位于上方并稍微偏左:

在css中设计好看的阴影,css,css,前端

如果 CSS 有一个真正的照明系统,我们将为一个或多个灯光指定一个位置。不过CSS 并没有这样的东西,但是我们可以通过指定水平偏移和垂直偏移来移动阴影。例如,在上图中,生成的阴影具有 4px 垂直偏移和 2px 水平偏移。

这是粘性阴影的第一个技巧:页面上的每个阴影都应具有相同的比例。这将使每个元素看起来都由同一光源照亮。

分层

现代 3D 插图工具(例如 Blender)可以通过使用光线追踪技术来产生逼真的阴影和照明。在光线追踪中,数百束光从相机中射出,在场景中的表面上反射数百次。这是一种计算成本较高的技术;生成一张图像可能需要几分钟到几小时!但是css中的box-shadow算法更加初级。它以我们元素的形状创建一个盒子,并对其应用基本的模糊算法。这样就会使得我们的阴影看起来永远不会像照片一样逼真,但我们可以通过一种巧妙的技术来改进很多东西:分层。

我们不使用单个盒子阴影,而是将一些盒子阴影堆叠在一起,偏移量和半径略有不同:

<style>
.wrapper {
  display: flex;
  gap: 32px;
}

.box {
  width: 100px;
  height: 100px;
  border-radius: 8px;
  background-color: white;
}
  .traditional.box {
    box-shadow:
      0 6px 6px hsl(0deg 0% 0% / 0.3);
  }
  .layered.box {
    box-shadow:
      0 1px 1px hsl(0deg 0% 0% / 0.075),
      0 2px 2px hsl(0deg 0% 0% / 0.075),
      0 4px 4px hsl(0deg 0% 0% / 0.075),
      0 8px 8px hsl(0deg 0% 0% / 0.075),
      0 16px 16px hsl(0deg 0% 0% / 0.075)
    ;
  }
</style>

<section class="wrapper">
  <div class="traditional box"></div>
  <div class="layered box"></div>
</section>

在css中设计好看的阴影,css,css,前端

性能权衡
分层阴影无疑能展现更好的效果,但它们确实是有代价的。如果我们分层 5 个阴影,我们的设备必须多做 5 倍的工作!
这在现代硬件上并不是什么大问题,但它可能会减慢移动设备上的渲染速度。
与往常一样,请务必进行自己的测试!根据我的经验,分层阴影不会对性能产生重大影响,但我也从未尝试过同时使用数十个或数百个阴影。
另外,尝试对分层阴影进行动画处理可能会导致性能问题。

与背景色匹配的阴影

到目前为止,我们所有的阴影都使用了半透明的黑色,例如hsl(0deg 0% 0% / 0.4),在项目中我们可能使用到非常多其他颜色。

当我们在背景颜色上叠加黑色时,它不仅会使其变暗,还会使背景颜色变暗。它也会使其饱和度降低很多。

在css中设计好看的阴影,css,css,前端
在css中设计好看的阴影,css,css,前端
通过匹配色调并降低饱和度/亮度,我们可以创建不具有“褪色”灰色质量的真实阴影。

饱和度和亮度的关系
如果我们熟悉hsl颜色格式,就会知道饱和度和亮度是独立控制的。但是降低亮度也会对饱和度产生影响。
例如,以下两个框具有相同的饱和度百分比 (100%),但感知的饱和度却截然不同.

.box.one {
background-color:
 hsl(220deg 100% 70%);
}
.box.two {
background-color:
 hsl(220deg 100% 50%);
}

在css中设计好看的阴影,css,css,前端
发生这种情况是因为在高/低亮度值下颜色中没有那么多“颜料”。饱和度不会对整体颜色产生太大影响。
这在极端情况下最为明显:

  1. hsl(0deg 0% 100%)是纯白色,饱和度为 0%。
  2. hsl(0deg 100% 100%)也是纯白色,甚至是完全饱和的。

如果我们将亮度设置为 95%,就会有差异,但很微妙:
在css中设计好看的阴影,css,css,前端
对于非常暗的颜色也是如此:
在css中设计好看的阴影,css,css,前端
然而,当我们处于亮度50%时,可以使用完整范围的饱和度。
在css中设计好看的阴影,css,css,前端
50% 的亮度是所有色调的“默认”版本。当亮度为 50% 时,亮度对饱和度没有影响。
当我们从 50% 最佳点增加或减少亮度时,我们就会减少颜色中可用颜料的量。颜色不可能完全饱和,也不可能是浅色或深色。
饱和度百分比是一个相对测量值,基于给定亮度下可用的颜料量。
这就是为什么我们之前必须降低阴影示例中的饱和度!亮度更接近 50% 最佳点,因此可以使用更广泛的饱和度范围。为了保持感知的鲜艳度相同,我们必须降低饱和度百分比。文章来源地址https://www.toymoban.com/news/detail-692001.html

到了这里,关于在css中设计好看的阴影的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS好看的动态渐变文字

       

    2024年02月14日
    浏览(45)
  • FE_CSS 页面布局之圆角边框 & 盒子阴影 & 文字阴影

    在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。border-radius 属性用于设置元素的外边框圆角。 参数值可以为数值或百分比的形式 如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可,或者直接写为 50% 该属性是一个简写属性,可以跟

    2023年04月13日
    浏览(88)
  • css3阴影效果

    首先效果如下: 阴影效果完整代码如下 上面的动态图是没有加transition的,为了美观加上了一个

    2024年02月12日
    浏览(45)
  • CSS四周阴影效果

     

    2024年02月12日
    浏览(47)
  • css中文本阴影特效

    文字颜色渐变 文字模糊 空心文字 文字外发光 文字阴影 纯CSS3实现悬停时出现对角线耀光效果的按钮 2023-08-09 谈谈怎么持续努力 2023-08-08 纯CSS实现的一个对角线填充颜色的按钮悬停动效 2023-08-07 使用CSS3 box-shadow实现的7个按钮悬停动画特效 2023-08-06 CSS3标题文本后的横线 2023-0

    2024年02月10日
    浏览(39)
  • CSS中的圆角和阴影

    目录 盒子圆角 圆角基础使用 圆角常见使用 通过设置盒子圆角得到一个圆形 通过设置盒子圆角,得到一个“操场”的样式 盒子阴影 文字阴影 在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。 使用 border-radius 属性用于设置元素的外边框圆角。 基本语法如下

    2024年04月28日
    浏览(42)
  • CSS 实现内阴影的方法

    实现效果: 代码实现: 其实就是一个 inset 就解决了,主要是用的太少,不太熟悉这个属性。 boxShadow 属性把一个或多个下拉阴影添加到框上。该属性是一个用逗号分隔阴影的列表,每个阴影由 2-4 个长度值、一个可选的颜色值和一个可选的 inset 来规定。 值 说明 h-sh

    2024年02月15日
    浏览(32)
  • css案例:取消组件的阴影

    点击的时候会出现阴影,取消阴影操作: 有的时候取消阴影的css不起作用是权限问题,加上 !important 就好了。

    2024年02月07日
    浏览(36)
  • css 给盒子加阴影边框

    可以使用 box-shadow 属性为 .body 类添加一个右下角的阴影边框。 可以在 .body 类的样式中添加以下代码: 在上面的代码中, box-shadow 属性接受四个参数,分别是水平偏移量、垂直偏移量、模糊半径和颜色。通过调整这些参数,你可以自定义阴影的位置、大小和颜色。 在这个例

    2024年02月15日
    浏览(60)
  • 【CSS3】渐变 阴影 遮罩

    1. CSS3渐变 渐变: 有规律的渐渐变化,在前端中通常指颜色的变化的实现方式. 通常使用在所有接受图像的属性上.(替代图片),意义是创建一张图片 gradient可以应用在所有接受图像的属性上 1.1 分类: 线性渐变(linear-gradient)变化的方向是一条直线 径向渐变(radial-gradient)变化的方向是

    2024年01月17日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包