css小技巧 linear-gradient

设计图:

现在的要求是不准用图片,好吧,那就用代码简单实现下。

方式1:svg
复制代码
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <rect x="-30" y="1" rx="8" ry="8" width="64" height="34" 
style="fill:#ffffff;stroke:black;stroke-width:1;" />
</svg>

效果:

太丑,不行

方式2:背景渐变,中间套一层白色背景,保留边框1px
复制代码
 <div class="box">
    <div class="btn-box">报表查询</div>
 </div>


  .box {
    display: inline-block;
    padding: 1px;
    background: linear-gradient(90deg,#fff,#ccc);
    border-radius: 8px;
    .btn-box{
      padding: 10px 20px;
      display: inline-block;
      background: #ffffff;
      border-radius: 8px;
     }
   }

效果:

效果一般,勉强能用。

但是,UI改设计了,白色底不好看,改透明了,这种背景色渐变的就不能用了。

方式3:border边框渐变
复制代码
<div class="box">
  <div class="btn-box">报表查询</div>
</div>

  .box {
    text-align: center;
    border-radius: 8px;
    border-right: 1px solid #495B6A;
    box-sizing: border-box;

    .btn-box{
      width: 94px;
      height: 34px;
      display: flex;
      justify-content: center;
      align-items: center;
      border-top: 1px solid;
      border-bottom: 1px solid;
      border-image: linear-gradient(90deg, transparent 60%, #495B6A 90%, transparent 97%) 1;
    }
  }

效果:

就这个了!

相关推荐
liangshanbo121514 分钟前
写好 React useEffect 的终极指南
前端·javascript·react.js
哆啦A梦15882 小时前
搜索页面布局
前端·vue.js·node.js
_院长大人_3 小时前
el-table-column show-overflow-tooltip 只能显示纯文本,无法渲染 <p> 标签
前端·javascript·vue.js
哆啦A梦15884 小时前
axios 的二次封装
前端·vue.js·node.js
阿珊和她的猫4 小时前
深入理解与手写发布订阅模式
开发语言·前端·javascript·vue.js·ecmascript·状态模式
yinuo4 小时前
一行 CSS 就能搞定!用 writing-mode 轻松实现文字竖排
前端
snow@li5 小时前
html5:拖放 / demo / 拖放事件(Drag Events)/ DataTransfer 对象方法
前端·html·拖放
浪裡遊6 小时前
Nivo图表库全面指南:配置与用法详解
前端·javascript·react.js·node.js·php
漂流瓶jz7 小时前
快速定位源码问题:SourceMap的生成/使用/文件格式与历史
前端·javascript·前端工程化
samroom7 小时前
iframe实战:跨域通信与安全隔离
前端·安全