Gahing's blog Gahing's blog
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Gahing / francecil

To be best
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前端基础

    • 编程语言

      • CSS

        • CSS 学习笔记
        • BFC
        • flex布局笔记
        • inline-block空内容最小高度的问题
        • 单行文本两端对齐
        • 响应式卡片分页
        • 实现两个直角梯形按钮斜切的效果
          • 0高元素,利用 border 上颜色和右透明实现夹角
          • 注
        • 最多2行文本&单行文本居底
        • 段落文本嵌入图标
        • 监听 stick 状态
        • 【前端】仿 Android TextView 实现完整的文本溢出截断省略效果
        • 前端元素默认宽高
        • CSS居中布局
      • HTML

      • JavaScript

      • Rust

      • TypeScript

      • WebAssembly

    • 开发工具

    • 前端调试

    • 浏览器原理

    • 浏览器生态

  • 应用框架

  • 工程能力

  • 应用基础

  • 专业领域

  • 业务场景

  • 大前端
  • 前端基础
  • 编程语言
  • CSS
gahing
2022-05-06
目录

实现两个直角梯形按钮斜切的效果草稿

采用 svg + 绝对定位的方式,能够精准应用到每个像素点

div 代替 svg ,那么和 border 方案一样,斜切处的点击只能生效某一边

    <!-- 中间只能是正方形,通过 border-color 设置两个地方为透明实现45°斜分割 -->

    <style type="text/css">
      .example {
        overflow: hidden;
        background: #f5d7b7;
        height: 44px;
        padding: 0;
        line-height: 44px;
      }

      .example > li {
        float: left;
        position: relative;
        width: 50%;
        text-align: center;
        list-style: none;
      }

      .example > li:before,
      .example > li:after {
        position: absolute;
        top: 0;
      }
      .example > li:before {
        width: 44px;
        height: 44px;
        right: -43px;
        background: inherit;
      }

      .example > li:after {
        right: -44px;
        border: 22px solid;
        border-color: transparent #f5d7b7 #f5d7b7 transparent;
      }

      .example > li.active {
        background: -webkit-linear-gradient(
          top,
          #f3941d,
          #f3941d 50%,
          #f08513 50%,
          #f08513
        );
      }

      .example > li.active:before,
      .example > li.active:after {
        content: "";
      }
    </style>
    <ul class="example">
      <li class="active">首页案例1</li>
      <li>首页案例2</li>
    </ul>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

# 0高元素,利用 border 上颜色和右透明实现夹角

<style>
#btn_cont{
  position: relative;
  margin: 0 auto;
  margin-top: 10%;
  /* NOT IMPORTANT */
  
  width: 300px;
  border: 2px solid #fff;
  height: 30px;
}
.btn1 {
  display: block;
  position: absolute;
/*   float: left; */
  width: 0px;
  height: 0px;
  cursor: pointer;  
}
.btn1{
  border-top: 30px solid #c74523;
  border-right: 110px solid transparent;
  left: 0px;
  z-index: 1;
}


</style>


<div id="btn_cont">
  <div class="btn btn1">
<!--     <span>BTN 1</span> -->
  </div>
<!--    <div class="btn">
    <span>BTN 2</span>
  </div> -->
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

# 注

以上两个 demo 都只能是固定颜色的三角形,如果要完全渐变,只能使用 svg 方案

编辑 (opens new window)
上次更新: 2023/08/26, 10:18:07
响应式卡片分页
最多2行文本&单行文本居底

← 响应式卡片分页 最多2行文本&单行文本居底→

最近更新
01
我的 2024 总结
12-31
02
浅谈代码质量与量化指标
08-27
03
快速理解 JS 装饰器
08-26
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Gahing | 闽ICP备19024221号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式