V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
soislom
V2EX  ›  问与答

纯·Css 样式如何实现该样式

  •  
  •   soislom · 2023-07-20 16:55:12 +08:00 · 1369 次点击
    这是一个创建于 456 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT

    有前端的大佬帮帮忙吗

    avatar

    21 条回复    2023-07-21 10:04:45 +08:00
    murmur
        1
    murmur  
       2023-07-20 16:57:50 +08:00
    这个折腾一下 svg 应该是可以做出来,为什么纯 css ,这是面试题么,这么复杂的东西想不想直接切图省着和需求撕逼
    murmur
        2
    murmur  
       2023-07-20 16:59:28 +08:00
    https://stackoverflow.com/questions/57215029/css-tabs-with-rounded-base-smooth-base-transition

    虽然我这么写但是我帮你搜到了类似的答案

    不过我仍然认为这种我看不出来是什么参数的曲线就直接切图
    nbin2008
        3
    nbin2008  
       2023-07-20 17:03:11 +08:00
    解题:
    1 、先做选中效果:白色背景,蓝底线
    2 、选中状态,左上右上设置弧形
    3 、css 前一个兄弟元素不支持,故用 before ,after 伪类设置相邻的弧形效果
    4 、需要做判断,在头/尾的时候,before ,after 相应隐藏
    soislom
        4
    soislom  
    OP
       2023-07-20 17:04:46 +08:00
    @murmur UI 设计出来的就是这样,因为 svg 不是特别熟练,就考虑用纯 Css 实现
    soislom
        5
    soislom  
    OP
       2023-07-20 17:05:35 +08:00
    @nbin2008 感谢,我试试看
    IvanLi127
        6
    IvanLi127  
       2023-07-20 17:06:43 +08:00 via iPad
    这还有阴影欸,蹲个成果
    shuxhan
        7
    shuxhan  
       2023-07-20 17:17:33 +08:00
    https://codepen.io/imzsh/pen/rNQKwxd

    写了个简单的,hover 转场依靠 css 会有瑕疵就懒得写了
    P233
        8
    P233  
       2023-07-20 17:18:25 +08:00
    @soislom 应该让设计师导出 SVG
    cheese
        9
    cheese  
       2023-07-20 17:24:02 +08:00
    svg,css 搞这种曲线不得行
    soislom
        10
    soislom  
    OP
       2023-07-20 17:25:40 +08:00
    @P233 有点问题导致没有 SVG
    soislom
        11
    soislom  
    OP
       2023-07-20 17:25:54 +08:00
    @shuxhan 感谢
    mringg
        12
    mringg  
       2023-07-20 17:26:58 +08:00
    mringg
        13
    mringg  
       2023-07-20 17:28:15 +08:00
    @mringg 给的链接有点问题,这个 svg 更擅长些
    Seanfuck
        14
    Seanfuck  
       2023-07-20 17:30:00 +08:00
    用背景图转成 base64 data 来做吧,别烧脑了
    soislom
        15
    soislom  
    OP
       2023-07-20 17:32:43 +08:00
    @mringg 最开始也考虑过贝塞尔曲线来做,但想到一般都是做动画就放弃了
    soislom
        16
    soislom  
    OP
       2023-07-20 17:33:20 +08:00
    @Seanfuck 哈哈,也考虑过直接背景图覆盖
    abc635073826
        17
    abc635073826  
       2023-07-20 18:57:13 +08:00
    css 会有瑕疵,而且不太适配
    molvqingtai
        18
    molvqingtai  
       2023-07-20 20:39:41 +08:00 via Android   ❤️ 1
    kkocdko
        19
    kkocdko  
       2023-07-20 22:33:44 +08:00 via Android
    刚想说,看到了 18 楼说了我认为的正解。

    还可以用 url()嵌入 svg ,svg 弄成 dataurl 就行,base64 或者 encodeURIcomponent 一下都可以。
    SpiritQAQ
        20
    SpiritQAQ  
       2023-07-21 09:55:37 +08:00
    点击后是否有横向位移动画是不是也会对最终实现方式有影响
    menglizhi2333
        21
    menglizhi2333  
       2023-07-21 10:04:45 +08:00
    18 楼说的 css path 是最符合需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2628 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:21 · PVG 19:21 · LAX 04:21 · JFK 07:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.