css渐变背景经常会在项目开发中遇到,此时UI如果给出的是单一的渐变背景(没有背景透明度),这个我们会很快的写出代码,如下:
<div class="btn">这是一个按钮div>
- .btn {
- background: linear-gradient(to right, #8B78E6, #50A5A5);
- color: #fff;
- padding: 10px 20px;
- font-size: 16px;
- border-radius: 5px;
- border: none;
- cursor: pointer;
- transition: background 0.3s ease;
- }
-
- .btn:hover {
- background: linear-gradient(to right, #50A5A5, #8B78E6);
- }
但偶尔的时候UI会给煎饼的背景色添加一个透明度,但是使用opacity属性会导致文本也会有透明度,接下来给出我的解决办法
- .btn {
- position: relative;
- color: #fff;
- padding: 10px 20px;
- font-size: 16px;
- border-radius: 5px;
- border: none;
- cursor: pointer;
- transition: background 0.3s ease;
- z-index: 0;
- }
-
- .btn:hover {
- background: linear-gradient(to right, #50A5A5, #8B78E6);
- }
-
- .btn::after{
- position: absolute;
- z-index: -1;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- content: "";
- opacity: 0.3;
- background: linear-gradient(to right, #8B78E6, #50A5A5);
- }
- .btn {
- border: 4px solid;
- border-image: linear-gradient(to right, #8f41e9, #578aef) 1;
- }
-
- /* 或者 */
- .btn {
- border: 4px solid;
- border-image-source: linear-gradient(to right, #8f41e9, #578aef);
- border-image-slice: 1;
- }
- <div class="border-box">
- <div class="content">
- 这是一个使用伪元素实现渐变边框的按钮
- div>
- div>
- .border-box {
- border: 1px solid transparent;
- border-radius: 16px;
- position: relative;
- color: #F2B05E;
- background-color: #fff;
- background-clip: padding-box; /*important*/
- }
-
- .border-box::before {
- content: '';
- position: absolute;
- top: 0;
- right: 0;
- left: 0;
- bottom: 0;
- z-index: -1;
- margin: -1px;
- border-radius: inherit; /*important*/
- background: linear-gradient(to right, #8F41E9, #578AEF);
- }
background-clip
、background-origin
、background-image
- .border-box {
- border: 1px solid transparent;
- border-radius: 16px;
- color: #F2B05E;
- background-clip: padding-box, border-box;
- background-origin: padding-box, border-box;
- background-image: linear-gradient(to right, #fff,#fff), linear-gradient(90deg, #8F41E9, #578AEF);
- }
background-clip 、background-origin属性添加了解释链接,没弄清的童鞋可以点击看下~
分享完毕~~