CSS技巧专栏:一日一例 16 纯CSS实现黑色背景炫光按钮特效
案例图片
案例分析
我们观察分析一下这个按钮,发现它的三个状态:
- 常态:黑色的按钮,白色的字。
- 鼠标悬浮:按钮下面出现彩色渐变层。
- 鼠标点击:黑色按钮的背景层消失,按钮文字颜色过渡为黑色。
数一数图层:
- 按钮层:放置文字,定位按钮,在最上面。
- 背景层:黑色,用于遮挡彩色背景层,在中间。 用伪元素 after 来实现
- 底层:彩色渐变层,在下面。用伪元素 before 来实现
解决了思路问题,我们就可以动手开干了。首先,复制之前的基础样式和布局代码:
布局代码
<button class="base">黑洞</button>
基础样式
:root{
--main-bg-color: #000;
--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; /*