首页 > 其他分享 >css实现3D弹性按钮以及box-shadow特性说明

css实现3D弹性按钮以及box-shadow特性说明

时间:2023-03-19 22:47:31浏览次数:56  
标签:box 阴影 1px 按钮 shadow 0px css

box-shadow

在实现案例之前先了解css的阴影属性box-shadow,该属性可以为盒子设置阴影,它有五个参数X轴偏移量、Y轴偏移量、模糊半径、扩散半径和颜色。

box-shadow文档https://developer.mozilla.org/zh-CN/docs/Web/CSS/box-shadow

假设给一个盒子设置阴影:

.shadowBox{
    width: 100px;
    height: 100px;
    border: 1px solid red;
    background-color: #80c342;
    box-shadow: 10px 10px 10px 10px black;  /**x轴 y轴 模糊度 大小 颜色 */
}

x轴左偏移10pxy轴下偏移10px,模糊10px,放大10px,颜色为黑色,效果如下:

在这里插入图片描述
上面是设置外阴影的,内阴影只需要在属性前添加inset即可

box-shadow: inset 10px 10px 10px 10px black;

在这里插入图片描述
如果没有指定inset,默认阴影在边框外,即阴影向外扩散。 使用 inset 关键字会使得阴影落在盒子内部,这样看起来就像是内容被压低了。此时阴影会在边框之内 (即使是透明边框)、背景之上、内容之下。

内阴影和外阴影的用法一致,阴影的基础用法到这里解释完毕。

下面我们来看一下阴影的一下其他的应用:

不占位应用

阴影跟边框不同,边框真实占位,1px边框就是给盒子添加1px的大小,而阴影是不会影响盒子大小的。
用过ui框架的伙伴都知道,这些框架一般都会提供几个按钮样式,大概分为红、蓝、黄、白,不同按钮颜色有不同的应用效果,其中有一个特殊的白色按钮,它的边框是黑的,大小和其他按钮一致,明明边框会影响box实际大小,但是它的按钮大小却和其他按钮时一致的,这里就可以用阴影实现,通过更改阴影的模糊效果让阴影变为边线,从而实现边框效果。

<div class="insetBtn">正常</div>
.insetBtn{
    background-color: #fff;
    box-shadow: inset 0px 0px 0px 1px #333333;
}

使用内阴影,阴影模糊度为0(不模糊),扩大1px,效果如下:
在这里插入图片描述


阴影层级在文字之下

阴影的层级是在文字之下的,而不影响文字,可以通过该特性实现一些特殊效果,例如:使用内阴影实现鼠标移入,当前按钮高亮的提示功能,让用户知道当前选的是哪一个。

.primary{
      width: 80px;
      height: 30px;
      text-align: center;
      line-height: 30px;
      border-radius: 5px;
}
.primary:hover{
    box-shadow: inset 0 0 0 200px rgba(255,255,255,0.2);
}

在这里插入图片描述
box-shadow是无法覆盖img元素的,因为img层级比box-shadow高,如果想要实现覆盖img元素可以用outline边框偏移解决,如下

.insetImg:hover{
    outline: 200px solid rgba(255,255,255,0.2);
    outline-offset: -200px;
}

在这里插入图片描述


阴影可以添加多个

阴影可以添加多个,且没有数量限制,也就是说可以用阴影克隆出无数个形状,这种多阴影写法只需要在后面继续叠加阴影参数即可,用逗号(,)分隔

.moreShadow{
    width: 50px;
    height: 50px;
    background-color: #80c342;
    margin: 50px;
    border-radius: 50%;
    box-shadow: 0px -40px 0px -20px #2d52a4,0px 40px 0px -20px #7c9bd0,40px 0px 0px -20px #c7d8f0,-40px 0px 0px -20px #4d6bb3;
}

在这里插入图片描述
可以用多阴影特性实现加载图标,绘制周围的圆形,让它旋转起来即可。
在这里插入图片描述


阴影实现3D弹性按钮

阴影实现3d按钮,点击的时候按钮下压,松开鼠标按钮回弹。

.button3D{
    width:80px;
    height:30px;
    border: 1px solid #80c342;
    text-align: center;
    line-height: 30px;
    background-color: #b7d69a;
    box-shadow: 1px 1px 0px 0px #b7d69a,2px 2px 0px 0px #b7d69a,3px 3px 0px 0px #b7d69a;
}
/*active点击事件*/
.button3D:active{
    translate : 1px 1px;
    box-shadow: 1px 1px 0px 0px #b7d69a,2px 2px 0px 0px #b7d69a;
}

三个box-shadow分别累加1px,看起来像完美衔接的3D阴影,通过translate将激活的按钮xy轴平移1px,由于位置移动了,阴影也会随着移动1px,所以减少最外层3px的阴影,看起来阴影没有动,按钮动了。
在这里插入图片描述
阴影特性
1、内外阴影的光源都是一致的,左上角光源
2、不占位,阴影跟边框不同,边框真实占位,1px边框就是给盒子添加1px的大小,而阴影是不会影响盒子大小的。
3、阴影可以添加多个,每个阴影都可以单独设置xy轴偏移度,以及模糊、大小、颜色,相当于一个box可以叠加多个颜色效果。


案例源码:https://gitee.com/wang_fan_w/css-diary

如果觉得这篇文章对你有帮助,欢迎点赞、收藏、转发哦~

标签:box,阴影,1px,按钮,shadow,0px,css
From: https://www.cnblogs.com/wang-fan-w/p/17234629.html

相关文章

  • CSS的三大特性
    CSS的三大特性CSS有三个非常重要的三个特性:层叠性、继承兴、优先性。1.层叠性相同选择器给设置相同样式,此时一个样式就会覆盖(层叠)另一个冲突的样式,层叠性主要解决样式......
  • Linux Debian11安装VirtualBox虚拟机平台
    一、VirtualBox虚拟机简介VirtualBox是一款开源虚拟机软件。VirtualBox是由德国Innotek公司开发,由SunMicrosystems公司出品的软件,使用Qt编写,在Sun被Oracle收购后......
  • CSS
    1.CSS的复合选择器1.1什么是复合选择器在CSS中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的......
  • CSS入门
    1.CSS简介CSS的主要使用场景就是美化网页,布局页面。1.1HTML的局限性说起HTML,其实就是个非常单纯的家伙,他只关注内容语义。比如<h1>表明这是一个大标题,<p>表明这是一个......
  • tkinter中combobox实现模糊匹配
    fromtkinterimport*fromtkinter.ttkimportComboboxfromfuzzywuzzyimportfuzzroot=Tk()root.geometry('200x200')options=['Option1','Option2','......
  • CSS必知必会
    CSS概念css的使用是让网页具有统一美观的页面,css层叠样式表,简称样式表,文件后缀名.csscss的规则由两部分构成:选择器以及一条或者多条声明选择器:通常是需要改变的HTML元素......
  • css盒子模型
    1、网页布局的本质网页布局的核心本质:就是利用CSS摆盒子。网页布局过程:先准备好相关的网页元素,网页元素基本都是盒子Box。利用CSS设置好盒子样式,然后摆放到相......
  • 快速带你入门css
    css复习笔记1.css样式值1.1文字样式1p{2font-size:30px;/*设置文字大小*/3font-weight:bold;/*文字加粗*/4font-style:ital......
  • 一般人我都不告诉他的那些css伪选择器
    什么是伪选择器CSS中的伪选择器是指用于匹配特定状态或位置的选择器,它们不是基于HTML元素的实际属性进行匹配,而是基于元素的状态或上下文进行匹配。常用的伪选择前端......
  • CSS学习笔记
    CSS学习笔记   元素的显示模式和转换方法总结分类举例特点转换块级元素h1-h6,p,div,ul,ol,li自己独占一行;高度宽度、内外边距可以控制;......