CSS技巧专栏:一日一例 20-纯CSS实现点击会凹陷的按钮

本例图片

案例分析

其实这个按钮非常的简单啊,主要就是利用了box-shadow的inset。

布局代码

html 复制代码
<button class="base">凹下的按钮</button>

基础样式

css 复制代码
:root{
  --main-bg-color: #dcdcdc; /* 将页面背景色调整为浅灰色 */
  --color:#000;
  --hover-color:#993399;
}
button{
  margin: 0.3em;
  outline: 0;
  border: none;
}
.base{
  position: relative;   
  padding: 1rem 3rem; /* 用 padding 撑起按钮的宽度和高度 ,并确保了按钮文字水平方向居中 */
  font-family: "微软雅黑", sans-serif;
  font-size: 1.5rem;  
  line-height: 1.5rem; /* 行高和字号大小相等,可以实现按钮文字在按钮内垂直居中 */ 
  font-weight:700;
  color: var(--color);  /* 文字颜色为预定义的前景色 */
  cursor: pointer;   /* 鼠标移动到按钮上时候的形状:手型 */
  user-select: none;  /* 让用户不能选择按钮上的文字 */
  white-space: nowrap; /* 避免英文单词间的空格导致文字换行 */
  border-radius: 2rem; 
  text-decoration: none; 
  text-transform:uppercase; /* 字母自动修正为大写 */
  transition: all .5s; /* 按钮响应动画效果的持续时间 */
  margin: 1.5rem 2rem;
}

按钮样式,Let's do it!

css 复制代码
/* 凹下去的按钮 */

.push_down{
  color: #333;
  cursor: pointer;  
  border:1px solid var(--main-bg-color);
  height: 60px;
  background: var(--main-bg-color);
  transition: 0.3s;  
  text-shadow: 1px 2px 1px rgba(255, 255, 255, 0.9); 
}

悬浮样式

css 复制代码
.push_down:hover{
  background-color: var(--hover-bg);
  /* box-shadow: 0 0px 30px 0 rgba(225, 225, 225, 1),inset 0 1px 0 0 rgba(255, 255, 255, 0.7);  */
}

点击样式

css 复制代码
.push_down:active{
  color: #666;
  box-shadow:0px 1px 30px rgba(0, 0, 0, 0.03)inset, 2px 2px 2px rgba(0, 0, 0, 0.029)inset,0px 1px 1px rgba(0, 0, 0, 0.06) inset,0px -1px 0px rgba(255, 255, 255, 0.06) inset,5px 5px 6px rgba(0, 0, 0, 0.027) inset,10px 9px 12px rgba(0, 0, 0, 0.07) inset;
  text-shadow: 1px 2px 1px rgba(255, 255, 255,1); 
  transition: 0.3s;
}

大功告成

希望对可爱漂亮又富有爱心的你有所帮助!嘿嘿,别忘了,给我点赞+关注+评论哦!我在下面等你。。咳咳。。。下面评论区等你!

相关推荐
FreeTinker6 小时前
HTML本地存储技术解析:localStorage与sessionStorage的原理、差异与应用场景
前端·html
qq_452396236 小时前
第十二篇:《全链路监控与可观测性:前端错误追踪与性能分析》
前端
wangruofeng7 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
BigTopOne7 小时前
WebRTC Native / Android 开发学习资源整理
前端
excel8 小时前
nuxt 3 升级 nuxt 4 报错之 hasInjectionContext
前端
何以解忧,唯有..8 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
软件聚导航9 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
恋猫de小郭10 小时前
看懂大模型架构术语,帮助你理解目前常见的大模型开源架构
前端·人工智能·ai编程
yma1610 小时前
通过提示词实现GitHub Pages 和 Nginx 双部署竟然这么简单?
前端
前端 贾公子10 小时前
第09章:上下文与记忆 (2)
java·服务器·前端