css - 我想添加可变顶部和底部宽度的线性渐变

标签 css linear-gradients

所以我想对图片应用线性渐变,使其在顶部宽度为 75%,底部宽度为 35% 时结束。我环顾四周,但到目前为止似乎没有运气

This is the image

最佳答案

您可以使用 2 个线性渐变来执行此操作,如下所示。

第一个渐变将以矩形填充宽度的 35%,然后第二个渐变将在第一个渐变以 40% 的宽度和三 Angular 形结束时开始,所以你将有 35%+40% =顶部 75%,底部保留 35%:

enter image description here

.box {
  height:300px;
  background:
  linear-gradient(to bottom right,rgba(0,180,0,0.7) 50%,transparent 50.5%) calc(35% / 0.6) 0/40% 100% no-repeat,
  linear-gradient(to right,rgba(0,180,0,0.7),rgba(0,180,0,0.7)) 0 0/35.05% 100% no-repeat,
  url(https://lorempixel.com/1000/1000/) center/cover no-repeat
}
<div class="box">

</div>

几乎所有使用的值都非常容易理解。第一个渐变位于 [0,0],宽度为 35%,高度为 100%。对于第二个,高/宽很清楚,但是位置有点棘手,所以我会解释一下。

首先,我们需要了解百分比值如何与 background-position 一起使用。你可以看看this link了解更多信息和一些说明。考虑到这一点,这里有一张图来显示我们需要计算的 background-position-x 的值(我称之为 p)

enter image description here

考虑到背景位置的计算方式,我们知道 p 定义了百分比outsidex 定义了百分比inside 并且两者相等。由此我们可以得到 xp 之间的关系,即 (x/40) = (p/100) ~ x = 0.4*p。我们还可以清楚地看到 p - x 等于第一个梯度的宽度,即 35%,所以我们有:

p - x = 35% => p - 0.4*p = 35% => 0.6*p = 35% => p=35%/0.6

关于css - 我想添加可变顶部和底部宽度的线性渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012117/

相关文章:

html - 在悬停时删除 div 的覆盖

具有线性渐变背景的Android GLSurfaceView OpenGL ES?

html - 在 CSS 中为线性渐变动态设置背景 url

html - 如何根据屏幕边框在 css 上定位我的元素

javascript - 单击选项卡时如何更改占位符文本

css - 样式化单选按钮

jquery - 给元素线性渐变的度数添加动画

css - 将百分比值与线性渐变的背景位置一起使用

css - extract-text-webpack-plugin - 提取 scss 导致 main.css.map 中没有映射

css - 将溢出的列缩放到较小的列(bootstrap 或 vanilla css)