You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整CSS Ribbon位置至左侧并翻转条纹?

问题描述

我使用以下代码在div的右上角显示CSS Ribbon,希望将其移至左侧,同时让Ribbon的条纹位于右侧(翻转状态):

HTML代码(放置在div内部):

<span class="ribbon">Ribbon Text</span>

原CSS代码:

.ribbon {
  --f: 1px; /* control the folded part*/
  --r: 15px; /* control the ribbon shape */
  --t: 5px; /* the top offset */
  
  position: absolute;
  inset: var(--t) calc(-1*var(--f)) auto auto;
  padding: 0 10px var(--f) calc(10px + var(--r));
  clip-path: 
    polygon(0 0,100% 0,100% calc(100% - var(--f)),calc(100% - var(--f)) 100%,
      calc(100% - var(--f)) calc(100% - var(--f)),0 calc(100% - var(--f)),
      var(--r) calc(50% - var(--f)/2));
  background: #ea0;
  box-shadow: 0 calc(-1*var(--f)) 0 inset #0005;
}

我尝试修改不同的inset和padding值,但无法将Ribbon从右侧移至左侧并翻转条纹,恳请告知需要调整哪些参数?

解决方案

只需调整3个核心属性即可实现左侧翻转的Ribbon效果:

  • 调整定位属性inset:将右侧定位改为左侧,替换为 inset: var(--t) auto auto calc(-1*var(--f));,让Ribbon固定在容器左上角。
  • 调整内边距padding:交换左右内边距的计算逻辑,替换为 padding: 0 calc(10px + var(--r)) var(--f) 10px;,避免文本被裁剪。
  • 翻转裁剪路径clip-path:修改多边形顶点顺序,让折角出现在右侧,替换后的路径为:
    clip-path: 
      polygon(100% 0,0 0,0 calc(100% - var(--f)),calc(var(--f)) 100%,
        calc(var(--f)) calc(100% - var(--f)),100% calc(100% - var(--f)),
        calc(100% - var(--r)) calc(50% - var(--f)/2));
    

完整修改后的CSS代码:

.ribbon {
  --f: 1px; /* control the folded part*/
  --r: 15px; /* control the ribbon shape */
  --t: 5px; /* the top offset */
  
  position: absolute;
  inset: var(--t) auto auto calc(-1*var(--f));
  padding: 0 calc(10px + var(--r)) var(--f) 10px;
  clip-path: 
    polygon(100% 0,0 0,0 calc(100% - var(--f)),calc(var(--f)) 100%,
      calc(var(--f)) calc(100% - var(--f)),100% calc(100% - var(--f)),
      calc(100% - var(--r)) calc(50% - var(--f)/2));
  background: #ea0;
  box-shadow: 0 calc(-1*var(--f)) 0 inset #0005;
}

内容的提问来源于stack exchange,提问作者Bec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:42:38