<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>新拟态按钮</title>
<style>
* {
margin: 0;
padding: 0;
}
:root {
--color-background: #ebecf0;
--color-label: slategrey;
--color-light: rgba(121, 130, 160, 0.55);
--color-shadow: rgb(255, 255, 255);
--duration-ani: 50ms;
}
html, body {
width: 100%;
height: 100%;
}
body {
display: flex;
align-items: center;
justify-content: center;
background-color: var(--color-background);
}
.icon-div {
width: 100px;
height: 160px;
display: flex;
justify-content: space-around;
flex-direction: column;
align-items: center;
align-content: center;
user-select: none;
}
.icon-div .icon-img {
width: 100px;
height: 100px;
/*一个合适的圆角*/
border-radius: 20px;
/*颜色和背景颜色一样,低对比度*/
background-color: var(--color-background);
display: flex;
align-items: center;
justify-content: center;
/*模拟光照阴影*/
box-shadow: 5px 5px 10px var(--color-light),
-5px -5px 10px var(--color-shadow);
/*增加过渡*/
transition: box-shadow var(--duration-ani) ease-out;
}
.icon-div .icon-img img {
width: 60px;
transform: scale(1);
transition: transform var(--duration-ani) ease-out;
}
.icon-div p {
color: var(--color-label);
}
.icon-div:hover {
cursor: pointer;
}
.icon-div .icon-img:active {
box-shadow: 0 0 0 rgba(0, 0, 0, 0),
0 0 0 rgba(0, 0, 0, 0),
inset 5px 5px 10px var(--color-light),
inset -5px -5px 10px var(--color-shadow);
}
.icon-div .icon-img:active img {
transform: scale(0.98);
}
</style>
</head>
<body>
<div class="icon-div">
<div class="icon-img">
<img src=""/>
</div>
<p>搜索</p>
</div>
</body>
</html>