按钮模版:btn-light-6
2023/6/20大约 3 分钟
预览效果
<div class="container">
<button class="btn-light-6"><span>View Room</span></button>
</div>
.container {
display: flex;
justify-content: center;
align-items: center;
background: #fff;
width: 100%;
height: 200px;
}
.btn-light-6 {
position: relative;
width: 120px;
height: 48px;
line-height: 48px;
padding: 0;
color: #fff;
background: linear-gradient(
0deg,
rgba(255, 151, 0, 1) 0%,
rgba(251, 75, 2, 1) 100%
);
transition: all 0.3s ease;
border: none;
cursor: pointer;
}
.btn-light-6 span {
position: relative;
display: block;
width: 100%;
height: 100%;
}
.btn-light-6:before,
.btn-light-6:after {
position: absolute;
content: "";
right: 0;
bottom: 0;
background: rgba(251, 75, 2, 1);
box-shadow: -7px -7px 20px 0px rgba(255, 255, 255, 0.9), -4px -4px 5px 0px
rgba(255, 255, 255, 0.9), 7px 7px 20px 0px rgba(0, 0, 0, 0.2), 4px 4px 5px
0px rgba(0, 0, 0, 0.3);
transition: all 0.3s ease;
}
.btn-light-6:before {
height: 0%;
width: 2px;
}
.btn-light-6:after {
width: 0%;
height: 2px;
}
.btn-light-6:hover {
color: rgba(251, 75, 2, 1);
background: transparent;
}
.btn-light-6:hover:before {
height: 100%;
}
.btn-light-6:hover:after {
width: 100%;
}
.btn-light-6 span:before,
.btn-light-6 span:after {
position: absolute;
content: "";
left: 0;
top: 0;
background: rgba(251, 75, 2, 1);
box-shadow: -7px -7px 20px 0px rgba(255, 255, 255, 0.9), -4px -4px 5px 0px
rgba(255, 255, 255, 0.9), 7px 7px 20px 0px rgba(0, 0, 0, 0.2), 4px 4px 5px
0px rgba(0, 0, 0, 0.3);
transition: all 0.3s ease;
}
.btn-light-6 span:before {
width: 2px;
height: 0%;
}
.btn-light-6 span:after {
height: 2px;
width: 0%;
}
.btn-light-6 span:hover:before {
height: 100%;
}
.btn-light-6 span:hover:after {
width: 100%;
}
代码解析
HTML结构
这个按钮模板的HTML结构包含一个容器元素、一个按钮元素和一个嵌套的span元素:
- 使用
div
作为容器,类名为container
,用于居中展示按钮 - 使用
button
作为按钮元素,类名为btn-light-6
- 按钮内部嵌套一个
span
元素用于包裹按钮文本,这是实现边框动画效果的关键
CSS实现原理
CSS部分实现了按钮的视觉效果和复杂的边框动画效果:
- 容器使用Flexbox实现内容的水平和垂直居中
- 按钮使用固定的
width
和height
,设置line-height
使文本垂直居中 - 按钮背景使用
linear-gradient
创建渐变色效果 - 通过按钮的
:before
和:after
伪元素创建右下角的垂直和水平线 - 通过
span
的:before
和:after
伪元素创建左上角的垂直和水平线 - 这些线条默认宽度或高度为0,使用
transition
设置过渡效果 - 当鼠标悬停时,按钮背景变为透明,文本颜色改变,同时所有线条的宽度或高度变为100%,创造出边框从四个角同时展开的动画效果
使用方法
- 复制 HTML 结构:将 HTML 代码块中的容器和按钮元素复制到你的网页中。
- 添加 CSS 样式:将 CSS 代码块中的样式规则复制到你的样式表中。
- 调整按钮大小:可以修改
width
和height
属性值来调整按钮的大小。 - 自定义颜色方案:可以替换渐变中的颜色值 (
rgba(255, 151, 0, 1)
,rgba(251, 75, 2, 1)
) 和rgba(251, 75, 2, 1)
颜色值来修改配色。 - 调整动画速度:可以修改
transition
属性中的0.3s
值来调整动画速度。
浏览器兼容性
- 该按钮模板使用的CSS属性在现代浏览器中具有良好的兼容性
linear-gradient
、transition
、伪元素和:hover
伪类在IE10及以上版本的浏览器中都能正常工作
更新日志
2025/9/28 09:03
查看所有更新日志
38e56
-于8b50d
-于