首页 前端知识 box-shadow详解

box-shadow详解

2024-02-01 12:02:15 前端知识 前端哥 806 631 我要收藏
box-shadow详解
属性定义及使用说明

box-shadow属性可以设置一个或多个下拉阴影的框。

语法
box-shadow: h-shadow v-shadow blur spread color inset;
复制

注意:boxShadow 属性把一个或多个下拉阴影添加到框上。该属性是一个用逗号分隔阴影的列表,每个阴影由 2-4 个长度值、一个可选的颜色值和一个可选的 inset 关键字来规定。省略长度的值是 0。

属性描述
h-shadow必需的。水平阴影的位置。允许负值
v-shadow必需的。垂直阴影的位置。允许负值
blur可选。模糊距离
spread可选。阴影的大小
color可选。阴影的颜色。
inset可选。从外层的阴影(开始时)改变阴影内侧阴影
属性详解

div默认设置以下css样式:

.container {
width: 200px;
height: 200px;
background-color: red;
}
复制
  • h-shadow
    它是必需的,代表水平方向的阴影。值为正数时,阴影在元素的右侧;值为负数时,阴影在元素的左侧。
<div class="container container1"></div>
<div class="container container2"></div>
复制
.container1 {
box-shadow: 20px 20px;
}
.container2 {
box-shadow: -20px 20px;
}
复制

效果如下:
在这里插入图片描述

  • v-shadow
    它是必需的,代表垂直方向的阴影。值为正数时,阴影在元素的下侧;值为负数时,阴影在元素的上侧。
.container1 {
box-shadow: 20px 20px;
}
.container2 {
box-shadow: 20px -20px;
}
复制

在这里插入图片描述

  • blur
    它是可选的,代表阴影的模糊半径。值越大,越模糊。
.container1 {
box-shadow: 20px 20px 20px;
}
.container2 {
box-shadow: 20px 20px 40px;
}
复制

在这里插入图片描述

  • spread
    它是可选的,代表阴影的大小(扩散半径)。值为正数时,阴影在原来的基础上放大;值为负数时,阴影在原来的基础上缩小。
.container1 {
box-shadow: 20px 20px 0;
}
.container2 {
box-shadow: 20px 20px 0 -10px;
}
.container3 {
box-shadow: 20px 20px 0 10px;
}
复制

在这里插入图片描述

  • color
    它是可选的,代表阴影的颜色。不设置颜色时默认黑色。
.container1 {
box-shadow: 20px 20px 0 0;
}
.container2 {
box-shadow: 20px 20px 0 0 yellow;
}
复制

在这里插入图片描述

  • inset
    它是可选的,代表阴影的投影方式。如果设置了则从外层的阴影(开始时)改变阴影内侧阴影。
.container1 {
box-shadow: 20px 20px;
}
.container2 {
box-shadow: 20px 20px inset;
}
复制

在这里插入图片描述

几个通过box-shadow实现的效果:

  • 按钮的按压效果
    在这里插入图片描述

核心代码:

<button class="button">点我</button>
复制
.button {
display: inline-block;
padding: 15px 35px;
font-size: 24px;
cursor: pointer;
text-align: center;
text-decoration: none;
outline: none;
color: #fff;
background-color: #4caf50;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
.button:hover {
background-color: #3e8e41;
}
.button:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
复制
  • 按钮的另一种按压效果
    在这里插入图片描述

核心代码:

<button class="button">点我</button>
复制
.button {
width: 120px;
height: 60px;
background: #e9ecef;
color: #333;
border-radius: 12px;
box-shadow: 7px 7px 12px rgba(0, 0, 0, 0.4),
-7px -7px 12px rgba(255, 255, 255, 0.9);
text-align: center;
line-height: 60px;
border: none;
font-size: 24px;
}
.button:active {
box-shadow: 0 0 0 rgba(0, 0, 0, 0.4), 0 0 0 rgba(255, 255, 255, 0.9),
inset -7px -7px 12px rgba(255, 255, 255, 0.9),
inset 7px 7px 12px rgba(0, 0, 0, 0.4);
}
复制
  • “立体效果”

在这里插入图片描述

核心代码:

<div class="container"></div>
复制
.container {
position: relative;
width: 600px;
height: 100px;
background: hsl(48, 100%, 50%);
border-radius: 20px;
margin: 200px auto;
}
.container::before {
content: "";
position: absolute;
top: 50%;
left: 5%;
right: 5%;
bottom: 0;
border-radius: 10px;
background: hsl(48, 100%, 20%);
transform: translate(0, -15%) rotate(-4deg);
transform-origin: center center;
box-shadow: 0 0 20px 15px hsl(48, 100%, 20%);
z-index: -1;
}
复制
  • 创建多个自身
    在这里插入图片描述
    核心代码:
<div class="container"></div>
复制
.container {
width: 400px;
height: 200px;
background-color: gray;
position: relative;
}
.container::after {
position: absolute;
right: 35px;
top: 10px;
content: "";
width: 6px;
height: 6px;
border-radius: 50%;
background: #fff;
box-shadow: 10px 0 0 #fff, 20px 0 0 #fff;
}
复制
转载请注明出处或者链接地址:https://www.qianduange.cn//article/972.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!