首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CSS中停止重复线性梯度?

如何在CSS中停止重复线性梯度?
EN

Stack Overflow用户
提问于 2021-04-04 14:48:47
回答 2查看 422关注 0票数 0

为了在CSS中添加一个repeating-linear-gradient,可以使用如下代码来实现这一点。它将创建一个很好的div元素与水平条。

代码语言:javascript
复制
.gradient {
  background: repeating-linear-gradient(90deg, green, green 10px, #ffffff 10px, #ffffff 20px);
}

div {
  width: 390px;
  height: 50px;
  border: 1px solid black;
}
代码语言:javascript
复制
<div class="gradient"></div>

然而,挑战是让这个重复的梯度停止/结束在元素的一半的过程中。此元素的后半部分不应显示渐变。如何才能做到这一点?

一个可能的解决方案是使用linear-gradient代替和硬编码所有您需要的栏。但是,考虑到您需要为这个解决方案编写大量的代码,这是不可取的。

在互联网上的其他搜索并没有审查如何为这个特定的用例做到这一点。例如,在MDN文档的帮助下,可以查找repeating-linear-gradient是如何工作的。但是,由于它没有为这种情况提供一个例子,我不知道解决这一问题的最佳办法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-04 14:56:08

定义梯度大小并禁用重复:

代码语言:javascript
复制
.gradient {
  background: 
    repeating-linear-gradient(90deg, green 0 10px, #ffffff 0 20px)
    left  / 50%   100% no-repeat;
/*position / width height */
}

div {
  width: 390px;
  height: 50px;
  border: 1px solid black;
}
代码语言:javascript
复制
<div class="gradient"></div>

票数 2
EN

Stack Overflow用户

发布于 2021-04-04 14:48:47

经过一些周旋之后,我找到了下面的解决方案,在linear-gradient的基础上引入了一个repeating-linear-gradient,给出了渐变已经停止的错觉。通过将linear-gradient的最后一个值设置为0.0,可以使这个rgba的第一部分完全透明。

代码语言:javascript
复制
.gradient {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.0) 50%, rgb(255, 255, 255) 50%),
    repeating-linear-gradient(90deg, green, green 10px, #ffffff 10px, #ffffff 20px);
}

div {
  width: 390px;
  height: 50px;
  border: 1px solid black;
}
代码语言:javascript
复制
<div class="gradient"></div>

这个答案的灵感来自于另一个堆栈溢出问题,我已经为此目的修改了代码。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66942466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档