整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

css 设置盒子阴影,阴影和背景图保持一致

览图

首先查看预览图:

多彩方块

原理

  1. 采用了 background 属性 background: inherit;

inherit 关键字使得元素获取其父元素的计算值。它可以应用于任何 CSS 属性,包括 CSS 简写 all。对于继承属性,inherit 关键字只是增强了属性的默认行为,通常只在覆盖原有的值的时候使用。继承始终来自文档树中的父元素,即使父元素不是包含块。

  1. 线性渐变 linear-gradient

线性渐变由一个轴 (梯度线) 定义,其上的每个点具有两种或多种的颜色,且轴上的每个点都具有独立的颜色。为了构建出平滑的渐变,linear-gradient() 函数构建一系列垂直于渐变线的着色线,每一条着色线的颜色则取决于与之垂直相交的渐变线上的色点。

用法:

// 渐变轴从左上角出发并且呈 45 度。
background: linear-gradient(45deg, red, blue);
  1. 伪元素 ::after

CSS伪元素::after用来创建一个伪元素,作为已选中元素的最后一个子元素。通常会配合content属性来为该元素添加装饰内容。这个虚拟元素默认是行内元素。

.content-item::after {
            content: "";
            width: 280px;
            height: 280px;
            /* 获取其父元素的计算值 */
            background: inherit;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            filter: blur(20px) brightness(80%);
            z-index: -1;
}
  1. 滤镜 filter

在该程序中调用了2个函数: blur(20px) brightness(80%);

  • blur():将高斯模糊应用于输入图像。
  • brightness():将线性乘法器应用于输入图像,以调整其亮度。值为 0% 将创建全黑图像;值为 100% 会使输入保持不变,其他值是该效果的线性乘数。如果值大于 100% 将使图像更加明亮。

至于代码中还有其他知识点,也就是 margin 、position 等基础内容了。

全部代码

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>阴影和背景一致</title>
    <style>
        .content-item {
            position: relative;
            width: 260px;
            height: 260px;
            border-radius: 10px;
            /* background: linear-gradient(90deg, #e66465, #9198e5); */
            background: linear-gradient(217deg, rgba(255, 0, 0, .8), rgba(255, 0, 0, 0) 70.71%),
                linear-gradient(127deg, rgba(0, 255, 0, .8), rgba(0, 255, 0, 0) 70.71%),
                linear-gradient(336deg, rgba(0, 0, 255, .8), rgba(0, 0, 255, 0) 70.71%);
            margin: 100px auto;
        }

        .content-item::after {
            content: "";
            width: 280px;
            height: 280px;
            /* 获取其父元素的计算值 */
            background: inherit;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            filter: blur(20px) brightness(80%);
            z-index: -1;
        }
    </style>
</head>

<body>
    <div class="content">
        <div class="content-item"></div>
    </div>
</body>

</html>

参考文章

css 设置盒子阴影,阴影和背景图保持一致_css filter 阴影色和背景色一致_随忆~的博客-CSDN博客

欢迎收藏该文章!


者 | chokcoco
来源 | https://juejin.im/post/5be1023951882516fd36a38e

最近一个新的项目,CSS-Inspiration,挖掘了其他很多有关 CSS 阴影的点子,是之前的文章没有覆盖到的新内容,而且有一些很有意思,遂打算再起一篇。不过之前小编也发布了几篇关于CSS相关文章不妨一起来回顾回顾:

《手把手整理CSS3知识汇总【思维导图】》

加一个简单的阴影


让我们为投影准备一个简单的HTML元素:

然后添加CSS:

输出结果是三个框,通过调用每个框的ID可以很容易地放置阴影。要添加阴影,让我们将属性box-shadow赋予框1:

我们提供三个参数。前两个参数是offset-x和offset-y。两者都确定投影的位置。相对于元素左上角的位置给出偏移量。偏移x处的正值表示将阴影向右引导,偏移y处的正值表示将阴影向下引导。

第三个参数是所需的阴影颜色。尽管这里我们使用elements <div>,但是属性box-shadow可以应用于所有其他HTML元素。

赋予模糊半径

如果想要阴影看起来更逼真,则可以使用blur-radius参数。此参数将设置我们如何给予阴影模糊效果。让我们将其应用于方框2:

注意第三个参数,该值4px调整应用于投影的模糊半径。

提供半径差数

如果要调整阴影的大小,我们可以添加参数spread-radius以使阴影扩大或缩小。让我们8px在框2中添加一个半径扩展:

注意参数的顺序。

合并多个阴影

我们甚至可以一次将多个阴影组合到一个元素中。让框3应用蓝色和绿色投影:

制作阴影

我们可以用参数制作一个向内的阴影inset。参数inset可以写在属性的开头或结尾box-shadow。以下示例使用elements blockquote。

我们还可以添加一些模糊和散布以增强阴影:

使用properties box-shadow,我们可以为所创建的网页提供阴影,从而可以提供良好的3D照明效果。