当前位置: 首页 > article >正文

CSS 效果:实现动态展示双箭头

最近写了一段 CSS 样式,虽然不难,但实现过程比较繁琐。这个效果结合了两个箭头,一个突出,一个内缩,非常适合用于步骤导航或选项卡切换等场景。样式不仅仅是静态的,还可以通过点击 click 或者 hover 事件,让它产生动态效果,提升用户体验。大家可以根据自己的需求做进一步完善和改变,比如调整箭头颜色、大小或者点击切换添加不同的动画效果等。

感兴趣的小伙伴可以试试看!

实现的效果如下:

代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .container {
        display: flex;
        width: 100%;
        height: 40px;
        flex-wrap: nowrap;
        padding: 0 8px 8px;
        background-color: #fff;
        border-radius: 2px;
        font-size: 14px;
      }

      .common {
        position: relative;
        width: 181px;
        height: 32px;
        flex: 1;
        line-height: 32px;
        text-align: center;
        box-sizing: border-box;
      }

      .selected {
        background-color: #ff7f95;
        color: #fff;
        margin-right: 4px;
        font-weight: 500;
      }

      .selected::before {
        position: absolute;
        z-index: 1;
        top: 50%;
        right: -4px;
        border-top: 18px solid transparent;
        border-right: 5px solid #ff7f95;
        margin-top: 0;
        content: '';
        transform: rotate(-180deg);
      }

      .selected::after {
        position: absolute;
        z-index: 1;
        top: 50%;
        right: -4px;
        border-top: 18px solid transparent;
        border-left: 5px solid #ff7f95;
        margin-top: -17px;
        content: '';
      }

      .noSelected {
        background-color: #dbdbdb;
        color: #5a6066;
        margin-left: 4px;
        font-size: 400;
      }

      .noSelected::before {
        position: absolute;
        z-index: 1;
        top: 50%;
        left: 0;
        border-top: 18px solid transparent;
        border-right: 5px solid #fff;
        margin-top: 0;
        content: '';
        transform: rotate(-180deg);
      }

      .noSelected::after {
        position: absolute;
        z-index: 1;
        top: 50%;
        left: 0;
        border-top: 18px solid transparent;
        border-left: 5px solid #fff;
        margin-top: -17px;
        content: '';
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="common selected">1. vue2 内容</div>
      <div class="common noSelected">2. vue3 内容</div>
    </div>
  </body>
</html>

该部分代码仅实现了基础的 CSS 样式,没有涉及到动态交互。大家在尝试时,可以结合 Vue 或其他框架,实现动态的状态切换效果。


http://www.kler.cn/news/327644.html

相关文章:

  • Android Button “No speakable text present” 问题解决
  • CUDA Dynamic Parallelism测试
  • Django-form表单
  • 【JAVA高级】如何使用Redis加锁和解锁(二)做分布式锁案例(防误删锁)
  • https访问报错:net::ERR_CERT_DATE_INVALLD
  • 【Simulink仿真】两级式三相光伏并网发电系统
  • Linux启动mysql报错
  • 【QT Quick】C++交互:QML对象操作
  • Linux应急响应技巧整理
  • 如何确定光纤用几芯 用光纤与网线区别在哪里
  • TensorRT-LLM高级用法
  • 五子棋双人对战项目(1)——WebSocket介绍
  • ubuntu 开启root
  • 太速科技-FMCJ457-基于JESD204B的2路2Gsps AD 2路2Gsps DA FMC子卡
  • LED驱动电路
  • SQL | 查询带有单引号的异常数据和replace与insert插入的区别
  • YOLO11震撼发布!
  • 《Python编程:从入门到实践》数据可视化
  • Linux操作系统中Redis
  • 从源码中学习动态代理模式
  • SpringBoot自定义异常
  • Webpack 4 优化指南:提升构建性能与加载速度
  • 服务器被挂马,导致网站首页被更改怎么解决
  • css的选择器及优先级
  • 在树莓派上基于 LNMP 搭建 Nextcloud
  • Leetcode 206. 反转链表
  • 环形链表的约瑟夫问题
  • 计算机网络基础--认识协议
  • 【测试】混沌工程
  • 滚雪球学MySQL[7.3讲]:数据库日志与审计详解:从错误日志到审计日志的配置与使用