css中的阴影详解

news2025/1/16 22:45:52

在 CSS 中,阴影效果通常使用 box-shadowtext-shadow 来实现,它们分别适用于元素的框和文本。阴影是提升页面设计感和层次感的重要工具。下面,我会详细讲解这两个属性,并结合代码示例说明。

1. box-shadow

box-shadow 用于为元素的框添加阴影效果,语法如下:

box-shadow: h-offset v-offset blur spread color inset;
  • h-offset(水平偏移):阴影相对于元素的水平位置。正值表示阴影在元素的右侧,负值表示阴影在左侧。
  • v-offset(垂直偏移):阴影相对于元素的垂直位置。正值表示阴影在元素的下方,负值表示阴影在上方。
  • blur(模糊半径):控制阴影的模糊程度,值越大,阴影越模糊。默认为 0,表示没有模糊。
  • spread(扩展半径):控制阴影的大小,正值表示阴影会扩展,负值表示阴影会收缩。
  • color(颜色):阴影的颜色,可以使用任何合法的颜色值(如 rgba, #hex, rgb 等)。
  • inset(内阴影,可选):表示阴影是内嵌在元素内部的。如果不指定,阴影会在元素外部。
示例
<div class="box-shadow-example">盒子阴影</div>

<style>
  .box-shadow-example {
    width: 200px;
    height: 100px;
    background-color: #4CAF50;
    color: white;
    line-height: 100px;
    text-align: center;
    box-shadow: 10px 10px 20px 5px rgba(0, 0, 0, 0.5);
  }
</style>
  • box-shadow: 10px 10px 20px 5px rgba(0, 0, 0, 0.5);:
    • 10px:水平偏移 10 像素,阴影向右。
    • 10px:垂直偏移 10 像素,阴影向下。
    • 20px:模糊半径 20 像素,阴影会变得模糊。
    • 5px:扩展半径 5 像素,阴影会稍微增大。
    • rgba(0, 0, 0, 0.5):阴影的颜色为半透明黑色。

2. text-shadow

text-shadow 用于为文本添加阴影效果,语法如下:

text-shadow: h-offset v-offset blur color;
  • h-offset(水平偏移):阴影相对于文本的水平位置,正值向右偏移,负值向左偏移。
  • v-offset(垂直偏移):阴影相对于文本的垂直位置,正值向下偏移,负值向上偏移。
  • blur(模糊半径):控制阴影的模糊程度,值越大,阴影越模糊。
  • color(颜色):阴影的颜色。
示例
<h1 class="text-shadow-example">带阴影的文本</h1>

<style>
  .text-shadow-example {
    font-size: 50px;
    text-align: center;
    text-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
  }
</style>
  • text-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);:
    • 3px:水平偏移 3 像素,阴影向右。
    • 3px:垂直偏移 3 像素,阴影向下。
    • 5px:模糊半径 5 像素,阴影稍微模糊。
    • rgba(0, 0, 0, 0.3):阴影的颜色为半透明黑色。

3. 多重阴影

box-shadowtext-shadow 都可以同时应用多个阴影,多个阴影使用逗号分隔。每个阴影的语法遵循相同的规则。

示例
<div class="multi-shadow-example">多重阴影效果</div>

<style>
  .multi-shadow-example {
    width: 200px;
    height: 100px;
    background-color: #ff6347;
    color: white;
    line-height: 100px;
    text-align: center;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3), -5px -5px 10px rgba(0, 0, 0, 0.1);
  }
</style>
  • box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3), -5px -5px 10px rgba(0, 0, 0, 0.1);:
    • 第一个阴影:偏移 5px 向右下方,模糊半径为 10px,半透明黑色。
    • 第二个阴影:偏移 -5px 向左上方,模糊半径为 10px,浅色阴影。

4. 内阴影

box-shadow 还可以应用内阴影(inset),它会使阴影出现在元素内部。

示例
<div class="inset-shadow-example">内阴影效果</div>

<style>
  .inset-shadow-example {
    width: 200px;
    height: 100px;
    background-color: #87cefa;
    color: black;
    line-height: 100px;
    text-align: center;
    box-shadow: inset 5px 5px 15px rgba(0, 0, 0, 0.4);
  }
</style>
  • box-shadow: inset 5px 5px 15px rgba(0, 0, 0, 0.4);:
    • inset:使阴影呈内阴影,阴影在元素内部。
    • 5px 5px:阴影向右下方偏移 5 像素。
    • 15px:模糊半径为 15 像素,阴影较为模糊。
    • rgba(0, 0, 0, 0.4):阴影颜色为半透明黑色。

总结

  • box-shadow 用于元素框的阴影,可以调整偏移、模糊、扩展和颜色,还可以设置内阴影。
  • text-shadow 用于文本的阴影,主要控制文本的偏移、模糊和颜色。
  • 可以通过逗号分隔来实现多个阴影效果。

使用阴影时要注意性能问题,过多的阴影可能影响页面渲染速度,尤其是在低性能设备上。适当使用阴影能有效增强页面的视觉层次感和设计感。

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

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

相关文章

Ubuntu上,ffmpeg如何使用cuda硬件解码、编码、转码加速

本文使用 Ubuntu 环境。Ubuntu 直接使用 APT 安装的就支持 CUDA 加速。本文使用这样下载的版本进行演示&#xff0c;你自己编译或者其他源的版本可能会不同。 ffmpeg 的一些介绍&#xff0c;以及 macOS 版本的 ffmpeg 硬件加速请见《macOS上如何安装&#xff08;不需要编译安装…

了解Python中的SciPy库

么是 SciPy&#xff1f; SciPy&#xff08;发音为“Sigh Pie”&#xff09;是 Scientific Python 的首字母缩写词&#xff0c;它是 Python 的开源库&#xff0c;用于科学和技术计算。它是 Python 编程语言中称为 Numpy 的基本数组处理库的扩展&#xff0c;旨在支持高级科学和工…

51单片机入门基础

目录 一、基础知识储备 &#xff08;一&#xff09;了解51单片机的基本概念 &#xff08;二&#xff09;掌握数字电路基础 &#xff08;三&#xff09;学习C语言编程基础 二、开发环境搭建 &#xff08;一&#xff09;硬件准备 &#xff08;二&#xff09;软件准备 三、…

【Qt】01-了解QT

踏入QT的殿堂之路 前言一、创建工程文件1.1 步骤介绍1.2 编译介绍方法1、方法2、编译成功 二、了解框架2.1 main.cpp2.2 .Pro文件2.2.1 注释需要打井号。2.2.2 F1带你进入帮助模式2.2.3 build文件 2.3 构造函数 三、编写工程3.1 main代码3.2 结果展示 四、指定父对象4.1 main代…

【Uniapp-Vue3】使用defineExpose暴露子组件的属性及方法

如果我们想要让父组件访问到子组件中的变量和方法&#xff0c;就需要使用defineExpose暴露&#xff1a; defineExpose({ 变量 }) 子组件配置 父组件配置 父组件要通过onMounted获取到子组件的DOM 传递多个属性和方法 子组件 父组件

qml XmlListModel详解

1、概述 XmlListModel是QtQuick用于从XML数据创建只读模型的组件。它可以作为各种view元素的数据源&#xff0c;比如ListView、GridView、PathView等&#xff1b;也可以作为其他和model交互的元素的数据源。通过XmlRole定义角色&#xff0c;如name、age和height&#xff0c;并…

登录系统网址作业

目录 主页代码 主页​编辑 效果1 登录页面代码 登录页面 效果2 注册页面代码 注册页面 效果3 主页代码 <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content&qu…

生产管理看板助力节能科技公司实现数据自动化管理

在节能科技公司的生产过程中&#xff0c;数据管理的自动化是提高生产效率和产品质量的关键。然而&#xff0c;许多公司在数据记录、展示、对比和存档方面仍面临诸多痛点&#xff0c;如产品检测数据无法自动记录、缺乏直观的产线状态展示、检测数据对比繁琐耗时&#xff0c;以及…

论文阅读:Searching for Fast Demosaicking Algorithms

今天介绍一篇有关去马赛克的工作&#xff0c;去马赛克是 ISP 流程里面非常重要的一个模块&#xff0c;可以说是将多姿多彩的大千世界进行色彩还原的重要一步。这篇工作探索的是如何从各种各样的去马赛克算法中&#xff0c;选择最佳的一种。 Abstract 本文提出了一种方法&…

nginx 修改内置 404 页面、点击劫持攻击。

1、在部署前端项目的目录下增加 404.html 页面&#xff1a;/opt/web/404.html。 2、在 nginx 配置中增加 404 配置&#xff1a; root /opt/web; # 设置根目录的配置error_page 404 404.html; location /404.html {root /opt/web;# 指定 404 页面所在的根目录internal;# 确保…

金融项目实战 04|JMeter实现自动化脚本接口测试及持续集成

目录 一、⾃动化测试理论 二、自动化脚本 1、添加断言 1️⃣注册、登录 2️⃣认证、充值、开户、投资 2、可重复执行&#xff1a;清除测试数据脚本按指定顺序执行 1️⃣如何可以做到可重复执⾏&#xff1f; 2️⃣清除测试数据&#xff1a;连接数据库setup线程组 ①明确…

【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统

文章目录 参考资料云盘资料软硬件环境手机解锁刷机驱动绑定账号和设备解锁手机 Mindows工具箱安装工具箱和修复下载下载安卓和woa资源包第三方Recovery 一键安装Windows准备工作创建分区安装系统 效果展示Windows和Android一键互换Win切换安卓安卓切换Win 删除分区 参考资料 解…

3 前端(上): Web开发相关概念 、HTML语法、CSS语法

文章目录 前言:导学1 Web开发相关概念2 Web标准(网页标准)3 软件架构(CS/BS)(1)C/S: Client/Server 客户端 / 服务器端(2)B/S: Browser/Server 浏览器 / 服务器端VSCode配置前段开发环境一、HTML概念1 概念2 HTML快速入门(1)语法快速入门(2)VSCode一个 !(快捷键…

Docker PG流复制搭建实操

目录标题 制作镜像1. 删除旧的容器2. 创建并配置容器3. 初始化数据库并启动 主库配置参数4. 配置主库5. 修改 postgresql.conf 配置 备库配置参数6. 创建并配置备库容器7. 初始化备库 流复制8. 配置&检查主库复制状态9. 检查备库配置 优化建议问题1&#xff1a;FATAL: usin…

【AIGC】SYNCAMMASTER:多视角多像机的视频生成

标题&#xff1a;SYNCAMMASTER: SYNCHRONIZING MULTI-CAMERA VIDEO GENERATION FROM DIVERSE VIEWPOINTS 主页&#xff1a;https://jianhongbai.github.io/SynCamMaster/ 代码&#xff1a;https://github.com/KwaiVGI/SynCamMaster 文章目录 摘要一、引言二、使用步骤2.1 TextT…

C++类与对象(一)—学习记录

序言&#xff1a;要想开发一款成功的应用程序&#xff0c;其开发者必须充分了解并实现用户的需求。作为一个设计良好的类&#xff0c;既要有直观且易于使用的接口&#xff0c;也必须具备高效的实现过程。 一、类与对象基本概念 面向对象程序设计的主要特点为抽象、封装、继承与…

【React】新建React项目

目录 create-react-app基础运用React核心依赖React 核心思想&#xff1a;数据驱动React 采用 MVC体系package.jsonindex.html好书推荐 官方提供了快速构建React 项目的脚手架&#xff1a; create-react-app &#xff0c;目前使用它安装默认是19版本&#xff0c;我们这里降为18…

Jmeter数据库

jmeter之操作数据库 一、下载jdbc 驱动&#xff0c;安装jdbc驱动 2、将驱动存放在4个路径下 &#xff08;1&#xff09;C:\Program Files\Java\jre1.8.0_60\lib &#xff08;2&#xff09;第二个存放的包 C:\Program Files\Java\jre1.8.0_60\lib\ext &#xff08;3&#xf…

nginx: [emerg] bind() to 0.0.0.0:80 failed 端口被占用

nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions) 查看被占用的端口 被系统占用了 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP 然后再进入nginx文件夹目录下…

《C++11》深入剖析正则表达式库:解锁文本处理的高效之道

在现代编程领域&#xff0c;文本处理是一项不可或缺的任务&#xff0c;而正则表达式无疑是这一领域的强大利器。C11标准库的引入&#xff0c;为C开发者带来了正则表达式库&#xff0c;极大地丰富了C在文本处理方面的能力。本文将全方位、多角度地深入探讨C11正则表达式库&#…