当前位置:首页 > CSS

css怎么制作阴影

2026-04-02 03:04:48CSS

使用 box-shadow 属性

CSS 中的 box-shadow 属性是制作阴影最常用的方法。该属性可以为一个元素添加一个或多个阴影效果。基本语法如下:

box-shadow: h-offset v-offset blur spread color inset;
  • h-offset: 水平阴影的位置,正值向右,负值向左。
  • v-offset: 垂直阴影的位置,正值向下,负值向上。
  • blur: 模糊距离,值越大阴影越模糊。
  • spread: 阴影的扩展半径,正值扩大阴影,负值缩小阴影。
  • color: 阴影的颜色,可以使用任何有效的颜色值。
  • inset: 可选参数,将阴影改为内部阴影。

示例代码:

div {
  box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
}

多重阴影效果

box-shadow 支持添加多个阴影,通过逗号分隔不同的阴影参数。这种方式可以创建更复杂的阴影效果。

示例代码:

div {
  box-shadow: 
    5px 5px 10px rgba(0,0,0,0.3),
    -5px -5px 10px rgba(255,255,255,0.3);
}

内部阴影

通过添加 inset 关键字,可以将阴影效果应用于元素的内部,而不是外部。这种效果常用于按钮或卡片的内凹设计。

示例代码:

css怎么制作阴影

div {
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}

使用 text-shadow 制作文字阴影

text-shadow 属性专门用于为文本添加阴影效果。语法与 box-shadow 类似,但不支持 spreadinset 参数。

示例代码:

h1 {
  text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}

使用 filter: drop-shadow()

filter: drop-shadow() 是另一种添加阴影的方法,特别适合对非矩形元素(如 SVG 或带有透明度的图像)添加阴影。它的语法与 box-shadow 类似,但不支持 spreadinset

示例代码:

css怎么制作阴影

img {
  filter: drop-shadow(5px 5px 5px rgba(0,0,0,0.5));
}

阴影动画效果

通过结合 CSS 动画或过渡效果,可以为阴影添加动态变化。例如,悬停时改变阴影的大小或颜色。

示例代码:

button {
  box-shadow: 0 0 5px rgba(0,0,0,0.3);
  transition: box-shadow 0.3s ease;
}

button:hover {
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
}

阴影性能优化

过多的阴影效果可能会影响页面性能,尤其是在移动设备上。建议避免过度使用高模糊值的阴影,或对需要高性能的元素(如滚动列表中的项目)减少阴影复杂度。

示例优化代码:

.card {
  box-shadow: 0 2px 4px rgba(0,0,0,0.1); /* 低模糊值优化性能 */
}

标签: 阴影css
分享给朋友:

相关文章

用css制作网页

用css制作网页

创建HTML文件结构 新建一个index.html文件,写入基础HTML5结构。通过<link>标签引入外部CSS文件,示例结构如下: <!DOCTYPE html> <…

css怎么制作时钟

css怎么制作时钟

使用CSS制作时钟 通过CSS和少量JavaScript可以创建一个动态时钟。以下是实现方法: HTML结构 <div class="clock"> <div cla…

css下拉箭头的制作

css下拉箭头的制作

使用伪元素制作下拉箭头 通过CSS的::after或::before伪元素结合边框属性创建箭头。设置元素的position: relative,伪元素使用绝对定位调整位置。 .dropdow…

css怎么制作个人主页

css怎么制作个人主页

设计布局结构 使用CSS的Flexbox或Grid布局创建响应式结构。Flexbox适合一维排列(如导航栏),Grid适合二维布局(如整体页面分区)。例如: .container { displ…

网页制作 css

网页制作 css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成。选择器指向需要样式化的HTML元素,声明块包含一个或多个用分号分隔的声明,每个声明由属性和值组成。 选择…

css 制作导航

css 制作导航

基础导航栏制作 使用HTML无序列表<ul>和CSS样式创建横向导航栏 <nav> <ul class="navbar"> <li><…