box-shadow属性的复合写法及高级用法,超详细!

前言:最近又叕看到了一个好看的特效,随后整理了一下,发现实现起来主要靠一个css属性就实现了,有一次刷新了我对css强大的认知😎,这个属性就是box-shadow,平常我们用到的比较少,但是针对于C端可能使用就多了,但是你们真正掌握了它的使用吗?让我这一文带你深度了解box-shadow🧐

🌈🌈文章目录

box-shadow属性介绍及用法 

基本使用

高级使用

五个值

inset(六个值)

多个阴影

关键字

加个动画

box-shadow属性介绍及用法 

box-shadow可以为元素的框架添加阴影效果,这个属性可以设置多个阴影效果,每个阴影效果之间用逗号分隔。box-shadow属性可以设置的值包括阴影的X轴偏移量、Y轴偏移量、模糊半径、扩散半径和颜色

基本使用

平常使用我们都是box-shadow:第一个值 第二个值 第三个值 第四个值;每个值后面用空格隔开

  1. 第一个值:阴影往X轴的偏移距离
  2. 第二个值:阴影往Y轴偏移的距离
  3. 第三个值:阴影模糊的半径,值越大阴影越模糊
  4. 第四个值:阴影的颜色可以使用十六进制也可以使用rgba()写法
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>
// box盒子阴影X轴便宜10像素Y轴偏移10像素,模糊半径为20像素,颜色为#ccc
.box{margin: 100px auto;width: 200px;height: 200px;border-radius: 50%;border: none;background-color: rgb(151, 211, 151);box-shadow: 10px 10px 20px #ccc;
}</style>
<body><div class="box"></div></body>
</html>

高级使用

五个值

box-shadow其实有五个值,如果有五个值的情况,那第四个值就不再是颜色了,而第五个值是颜色,第四个值表示的是阴影的半径大小,值越大阴影越大

<style>
.box{width: 200px;height: 200px;border-radius: 50%;border: none;background-color: rgb(77, 255, 0);box-shadow: 10px 10px 20px 30px #ccc;
}</style>

inset(六个值)

当使用了inset的时候变成了六个值,阴影将不再是对外扩散,相反是网内出现内阴影,而且第五个值(五个值时的第四个值)数值越大阴影往内扩散越大,直到铺满盒子,数值在变大阴影也不会出现变化了

多个阴影

除了可以控制内阴影还是外阴影以外,还可以使用 ,来进行间隔实现多个阴影效果

<style>
.box{margin:100px auto;width: 200px;height: 200px;border-radius: 50%;border: none;background-color: aqua;box-shadow: 0 0 20px #fff,20px 0 80px #f0f,-20px 0 80px #0ff,inset 0 0 50px #fff,inset 200px 0 80px #f0f;
}</style>

一个好看的小球这不就出来了🤩😍🥰

关键字

而且box-shadow还有几个特殊的关键字

  • inherit:将CSS属性的值设置为其父元素的值。
  • initial:将CSS属性的值重置为其默认值。
  • revert:将CSS属性的值重置为其父元素的值(如果该属性是继承属性),或者重置为其默认值(如果该属性不是继承属性)。
  • revert-layer:将CSS属性的值重置为其父元素的值(如果该属性是继承属性),或者重置为其默认值(如果该属性不是继承属性)。与revert相比,它还会重置元素上所有层叠上下文中该属性的值。
  • unset:将CSS属性的值设置为其父元素的值(如果该属性是继承属性),或者重置为其默认值(如果该属性不是继承属性)。

具体解释意思就是

  • box-shadow: inherit;会将元素的box-shadow设置为其父元素的box-shadow;
  • box-shadow: initial;会将元素的box-shadow设置为其默认值;
  • box-shadow: revert;会将元素的box-shadow设置为其父元素的box-shadow(如果该属性是继承属性),或者重置为其默认值(如果该属性不是继承属性);
  • box-shadow: revert-layer;会将元素上所有层叠上下文中box-shadow的值重置为其父元素的box-shadow(如果该属性是继承属性),或者重置为其默认值(如果该属性不是继承属性);
  • box-shadow: unset;会将元素的box-shadow设置为其父元素的box-shadow(如果该属性是继承属性),或者重置为其默认值(如果该属性不是继承属性

加个动画

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>body{margin: 0;padding: 0;box-sizing: border-box;background-color: #000;
}
.box{margin: 100px auto 0;width: 200px;height: 200px;border-radius: 50%;border: none;animation: redBall 6s linear infinite;background-color: rgb(0, 13, 255);box-shadow: 0 0 20px #fff,20px 0 80px rgb(0, 255, 191),-20px 0 80px rgb(0, 255, 81),inset 0 0 50px #fff,inset 200px 0 80px rgb(255, 234, 0);
}
@keyframes redBall{0%{box-shadow: 0 0 20px #fff,20px 0 80px rgb(0, 255, 213),-20px 0 80px rgb(72, 255, 0),inset 0 0 50px #fff,inset -200px 0 80px rgb(0, 64, 255);}50%{box-shadow: 0 0 20px #fff,20px 0 80px rgb(0, 242, 255),-20px 0 80px rgb(17, 255, 0),inset 0 0 50px #fff,inset 0px 0 80px rgb(255, 0, 55);}100%{box-shadow: 0 0 20px #fff,20px 0 80px rgb(179, 255, 0),-20px 0 80px #0ff,inset 0 0 50px #fff,inset 200px 0 80px rgb(255, 0, 21),inset 10px 0 80px #0ff;}
}
</style>
<body><div class="box"></div>
</body>
</html>

实现动态效果 (先录屏然后制作的gif图,会比较模糊,大家将就看吧)

总结:以上就是我对box-shadow属性的所有总结,希望对伙伴们有所帮助,学会一个算一个,喜欢的同学们可以一键三连,希望与大家共同分享共同进步,当然有什么问题也欢迎大家及时指正🥳🥳

🚀 个人简介:某大型国企高级前端开发工程师,7年研发经验,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~

💟 作    者:码喽的自我修养❣️
📝 专    栏: HTML5与CSS3

🌈 若有帮助,还请 关注➕点赞➕收藏  ,不行的话我再努努力💪💪💪 

 更多专栏订阅推荐:

👍 前端工程搭建
💕 vue从基础到起飞

✈️ JavaScript深入研究

⭐️ uniapp与微信小程序

📝 前端工作常见问题汇总

✍️ GIS地图与大数据可视化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle中存储过程的写法

存储过程常规语法&#xff1a; 实际业务例子&#xff1a; CREATE OR REPLACE TRIGGER "TRI_B00_02_ONLY_GUID" BEFORE/AFTER INSERT OR UPDATE OR DELETE ON B00_02 FOR EACH ROW declare t_guid varchar2(300) : ; --GUID t_cnt int : 0; BEGIN t_guid : :NEW…

【深度学习】大模型GLM-4-9B Chat ,微调与部署(1)

下载好东西&#xff1a; 启动容器环境: docker run -it --gpus all --net host --shm-size8g -v /ssd/xiedong/glm-4-9b-xd:/ssd/xiedong/glm-4-9b-xd kevinchina/deeplearning:pytorch2.3.0-cuda12.1-cudnn8-devel-yolov8train bashpip install typer tiktoken numpy1.2…

ROS2入门到精通—— 2-11 ROS2实战:实现基于voronoi_planner的全局规划(一)!!!保姆级教程

实现基于voronoi_planner的全局规划将分为两篇博文进行讲解 本文参考该大佬代码: https://github.com/nkuwenjian/voronoi_planner.githttps://github.com/nkuwenjian/voronoi_layer.git将上面的ROS1代码移植到ROS2,移植不易,中间遇到很多坑 0 前言 针对一些狭窄区域,可能…

【机器学习】梯度下降的基本概念和如何使用梯度下降自动化优化w和b

引言 梯度下降是一种用于寻找函数最小值的优化算法&#xff0c;它在机器学习中广泛用于训练模型&#xff0c;如线性回归、神经网络等 一、梯度下降的基本概念 1.1 目标函数 在机器学习中&#xff0c;这通常是损失函数&#xff08;如均方误差、交叉熵等&#xff09;&#xff0…

深度学习趋同性的量化探索:以多模态学习与联合嵌入为例

深度学习趋同性的量化探索&#xff1a;以多模态学习与联合嵌入为例 参考文献 据说是2024年最好的人工智能论文&#xff0c;是否有划时代的意义&#xff1f; [2405.07987] The Platonic Representation Hypothesis (arxiv.org) ​arxiv.org/abs/2405.07987 趋同性的量化表达 …

Pytorch使用教学7-张量的广播

PyTorch中的张量具有和NumPy相同的广播特性&#xff0c;允许不同形状的张量之间进行计算。 广播的实质特性&#xff0c;其实是低维向量映射到高维之后&#xff0c;相同位置再进行相加。我们重点要学会的就是低维向量如何向高维向量进行映射。 相同形状的张量计算 虽然我们觉…

JavaScript性能优化与调试

JavaScript性能优化与调试 如何通过优化Javascript代码来提高性能 减少页面的重绘&#xff08;Repaint&#xff09;和重排&#xff08;Reflow&#xff09; 减少页面的重绘&#xff08;Repaint&#xff09;和重排&#xff08;Reflow&#xff09;是优化网页性能的重要方面。以…

JAW:一款针对客户端JavaScript的图形化安全分析框架

关于JAW JAW是一款针对客户端JavaScript的图形化安全分析框架&#xff0c;该工具基于esprima解析器和EsTree SpiderMonkey Spec实现其功能&#xff0c;广大研究人员可以使用该工具分析Web应用程序和基于JavaScript的客户端程序的安全性。 工具特性 1、动态可扩展的框架&#x…

模拟ADG主库归档文件丢失,备库出现gap(增量备份解决)

文章目录 一、说明二、环境信息2.1.主备库环境信息2.2.检查主备是否同步正常 三、模拟日志断档3.1.模拟主库归档文件丢失3.2 查看主库状态出现GAP 四、RMAN增量备份恢复备库同步4.1 RMAN增量恢复备库4.2 开启备库redo同步4.3 主备库验证同步 一、说明 模拟Oracle主库归档文件丢…

Git基本原理讲解、常见命令、Git版本回退、Git抛弃本地分支拉取仓库最新分支

借此机会写篇博客汇总一下自己去公司实习之后遇到的一些常见关于Git的操作。 Git基本认识 Git把数据看作是对小型文件系统的一组快照&#xff0c;每次提交更新&#xff0c;或在Git中保存项目状态时&#xff0c;Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时…

【C++】选择结构案例-三只小猪称体重

案例问题 假设有三只小猪A、B、C&#xff0c;在输入三者体重后希望能输出他们各自的体重并测出谁最重 思路 先让A与B相比较&#xff0c;如果A重&#xff0c;则让A和C相比较&#xff0c;如果A重则输出A最重&#xff0c;否则输出C最重 在最开始的条件&#xff08;AB相比较&am…

浅谈Devops

1.什么是Devops DevopsDev&#xff08;Development&#xff09;Ops&#xff08;Operation&#xff09; DevOps&#xff08;Development和Operations的混合词&#xff09;是一种重视“软件开发人员&#xff08;Dev&#xff09;”和“IT运维技术人员&#xff08;Ops&#xff09;”…

通过限制访问,实现纯私有Docker镜像

怎么会不过审呢?没有敏感信息呀。 For obvious reasons,Many Docker image repositories are inaccessible,The official warehouse has also been filtered by the firewall,So write about how to build a self use Docker image using CloudFlares Workers and Pages. …

oracle使用backup as copy方式迁移数据文件

oracle使用backup as copy方式迁移数据文件 1 基础环境 --确认数据文件路径 set line 200 col name for a75 select file#,name from v$datafileFILE# NAME ---------- ---------------------------------------------------------------------------1 /u01/app/oracle/orada…

C++20之设计模式(19):空对象

空对象 空对象场景 空对象共享指针不是空对象改进设计隐式空对象总结 空对象 我们并不能总能选择自己想使用的接口。例如&#xff0c;我宁愿让我的车自己开车送我去目的地&#xff0c;而不必把100%的注意力放在道路和开车在我旁边的危险疯子身上。软件也是如此:有时你并不是真…

WPF MVVM使用遇见问题

一、遇见问题 1.使用Dictionary绑定ListBox的ItsSource问题 过程&#xff1a; 需要再界面动态显示字典&#xff0c;在循环中添加两条数据时&#xff0c;绑定的字典断点查看有两条&#xff0c;界面上只显示一条&#xff0c;后面再其他数量的都动态不显示&#xff0c;鼠标滚动后…

BUUCTF [安洵杯 2019]easy_serialize_php

这道题题目说easy但是对我来说极其不友好&#xff01;看了很多wp讲的模棱两可&#xff0c;我尽量来说清楚点 代码解析&#xff1a; 这里$function $_GET[f]&#xff0c;是我们通过get方式传递的&#xff0c;因为注释提示有东西先传fphpinfo看看 找到了一个东西&#xff0c;很…

每日任务:HTTP状态码详解及强缓存与协商缓存的区别

1.HTTP中常见的状态码有哪些&#xff1f; HTTP常见的状态码主要有以下几大类&#xff1a; 1XX:提示信息&#xff0c;协议处理的中间状态 2XX:请求成功 3XX:请求重定向 4XX:请求错误&#xff0c;一般是指发送请求的机器出现了问题 5XX:服务器错误&#xff0c;一般是指接受…

SQL性能优化:提升数据查询效率的秘诀

随着数据库规模的日益增大&#xff0c;SQL查询的性能问题逐渐成为开发者关注的焦点。一个低效的查询可能会导致系统响应缓慢&#xff0c;甚至崩溃。因此&#xff0c;掌握SQL性能优化的技巧对于提升系统整体性能至关重要。本文将介绍几种常用的SQL性能优化方法&#xff0c;帮助你…

IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验

研发项目往往包含很多复杂的流程和具体的细节。因此&#xff0c;一套完整且标准的研发项目管理制度和流程对项目的推进至关重要。研发项目管理是成功推动创新和技术发展的关键因素。然而在实际管理中&#xff0c;研发项目管理常常面临着需求不确定、技术风险、人员素质、成本和…