首页  >  文章  >  web前端  >  如何使用纯 CSS 创建带有折叠角的响应式 45 度丝带?

如何使用纯 CSS 创建带有折叠角的响应式 45 度丝带?

Linda Hamilton
Linda Hamilton原创
2024-11-01 12:26:29855浏览

How to Create a Responsive 45-Degree Ribbon with a Folded Corner Using Pure CSS?

创建带有折叠角的响应式 45 度功能区

是否可以使用 CSS 功能区形状像一个角?

使用 PNG图像是一种选择,但它对于响应能力来说并不理想。以下是纯粹使用 CSS 创建它的方法:

<code class="css">.container {
  width: 200px;
  height: 150px;
  position: relative;
  display: inline-block;
  margin: 10px;
  background: lightblue;
}

.stack-top {
  --d: 5px;
  --g: 16px;
  --c: #333;

  position: absolute;
  top: 0;
  right: 0;
  transform: translate(29.29%, -100%) rotate(45deg);
  color: #fff;
  text-align: center;
  width: 100px;
  transform-origin: bottom left;
  padding: 5px 0 calc(var(--d) + 5px);
  background:
    linear-gradient(135deg, transparent var(--g), var(--c) calc(var(--g) - 0.3px)) left,
    linear-gradient(-135deg, transparent var(--g), var(--c) calc(var(--g) - 0.3px)) right;
  background-size: 51% 100%;
  background-repeat: no-repeat;
  clip-path: polygon(
    0 0,
    100% 0,
    100% 100%,
    calc(100% - var(--d)) calc(100% - var(--d)),
    var(--d) calc(100% - var(--d)),
    0 100%
  );
}</code>

自定义功能区

您可以调整以下变量来自定义功能区的外观:

  • -- d:控制角折的大小
  • --g:控制色带峰的高度
  • --c:指定色带的颜色

用法

要使用功能区,只需将以下 HTML 代码添加到文档中即可:

<code class="html"><div class="container">
  <div class="stack-top">1Month</div>
</div></code>

您还可以使用 style 属性直接在 HTML 中指定自定义变量,如在下面更新的示例中可见:

<code class="html"><div class="container">
  <div class="stack-top" style="--d: 0px; --g: 19px; width: 120px; --c: blue">1Month</div>
</div></code>

以上是如何使用纯 CSS 创建带有折叠角的响应式 45 度丝带?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn