【我的前端】CSS启示录:CSS写出超级美观的阴影效果

简介: 在我看来,最好的网站和web应用程序对它们具有切实的"真实”质量。实现这种质量涉及很多因素,但阴影是一个关键因素。

如何用CSS写出超级美丽的阴影效果

在我看来,最好的网站和web应用程序对它们具有切实的"真实”质量。实现这种质量涉及很多因素,但阴影是一个关键因素。

然而,当我环顾网络时,很明显,大多数阴影并不像它们所希望的那样丰富。网络上覆盖着模糊的灰色盒子,看起来并不像影子。

在本文中,我们将学习如何将典型的箱形阴影转换为美丽、逼真的阴影。


为什么要使用阴影

我保证,我们很快就会谈到有趣的CSS技巧。但首先,我想退后一步,谈谈为什么阴影存在于CSS中,以及我们如何最大限度地利用它们。

阴影表示高程,而较大的阴影表示更高的高程,如果我们有策略地使用阴影,我们可以创造深度的错觉,就好像页面上的不同元素在不同级别上浮动在背景之上一样。

下面是一个示例,拖动”显示滑块"以查看我的意思。


技巧

链接到此标题压条

像Blender这样的现代3D插图工具可以通过使用一种名为 光线追踪 的技术产生逼真的阴影和照明。



在光线追踪中,数百束光从相机中射出,从场景中的表面反弹数百次。这是一种计算机成本高昂的技术,生成单个图像就可能需要几分钟到几小时!

Web 用户哪里来的这种耐心,因为算法更加简陋,它以我们的元素形状创建一个框,并对其应用基本的模糊算法 box-shaow。

我们将不使用单个框阴影,而是将一些框阴影堆叠在一起,偏移量和路径有不同。

其实有时候前端的原理说多了全是废话,还不如直接上一组代码呢!

滤镜:阴影

在本文中一直隐藏这一个属性,它是很棒很全面的工具,但它并不是我们在CSS中唯一的阴影选项:box-shndow ''box-shndow

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <div class="wrapper">
        <div class="box with-box-shadow">
            box-shadow
        </div>
        <div class="box with-drop-shadow">
            drop-shadow
        </div>
    </div>
</body>
</html>

CSS代码

.with-box-shadow{
    box-shadow:
    1px 2px 4px hsl(220deg 60% 50%);
}
.with-drop-shadow{
    filter: drop-shadow(
        1px 2px 4px hsl(220deg 60% 50%)
    );
}
.box {
    width: 150px;
    height: 150px;
    background-color: white;
    border-radius: 8px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.wrapper {
    display: flex;
}

效果图


语法看起来几乎相同,但它产生的阴影是不同的。这是因为该属性实际上是与SVG筛选器的CSS挂钩。正在使用的SVG高斯模糊,这是一种与使用的模糊算法不同的模糊算法 filter''drop-shadow''box-shdow。

写在最后

希望本教程能启发您在本文源码的基础上加以添加和调整,亦或是设计出更美观、更完美的阴影!

相关文章
|
12天前
|
Web App开发 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用CSS3,打造炫酷视觉效果!
【10月更文挑战第31天】前端开发面临复杂布局的挑战,本文介绍了几种提升开发效率和代码质量的工具和技术。基础的HTML和CSS可以应对大部分布局需求,而Firefox开发者工具、VS Code、Vue、React等则能应对更复杂的布局,帮助开发者构建高性能、用户友好的网页应用。
23 4
|
1月前
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
158 1
|
2月前
|
前端开发
前端基础(五)_CSS文本文字属性、背景颜色属性
本文详细介绍了CSS中关于文本和背景颜色的样式属性。包括字体大小、字体族、字体加粗、字体样式、文本行高、`font`属性、文本颜色、文本对齐方式、文本装饰线、首行缩进等文本属性,以及背景颜色、背景图片、背景重复、背景位置等背景属性。文章通过示例代码展示了这些属性的具体应用和效果。
33 3
前端基础(五)_CSS文本文字属性、背景颜色属性
|
2月前
|
前端开发
前端基础(九)_CSS的三大特征
本文详细解释了CSS的三大特性:层叠性、继承性和优先级,并通过实例演示了样式冲突、叠加和选择器优先级的应用。
27 2
前端基础(九)_CSS的三大特征
|
1月前
|
前端开发 UED
如何使用css给一个盒子加上好看的hover阴影效果
如何使用css给一个盒子加上好看的hover阴影效果
64 1
|
1月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
1月前
|
前端开发 UED 容器
前端技术分享:利用 CSS Grid 实现响应式布局
【10月更文挑战第1天】前端技术分享:利用 CSS Grid 实现响应式布局
53 2
|
1月前
|
Web App开发 前端开发
【前端基础篇】CSS基础速通万字介绍(上篇)3
【前端基础篇】CSS基础速通万字介绍(上篇)
16 1
|
1月前
|
Web App开发 前端开发
【前端基础篇】CSS基础速通万字介绍(上篇)2
【前端基础篇】CSS基础速通万字介绍(上篇)
23 1
|
1月前
|
缓存 前端开发 JavaScript
【前端基础篇】CSS基础速通万字介绍(上篇)1
【前端基础篇】CSS基础速通万字介绍(上篇)
18 1