Css linear-gradient线性渐变的应用

在之前的文章《深入理解Css linear-gradient线性渐变》,我们提到了Css的background-image线性渐变,它可以用来做一些条纹背景:

一. 水平条纹背景

当渐变色的色标设置为相同位置时,过渡区域就会变成无限小:

background: linear-gradient(#aaa 50%, #ddd 50%);

在这里插入图片描述
再结合background-size 来调整他的尺寸,由于默认情况下背景是重复平铺的,所以得到的效果就是填满水平条纹:

background: linear-gradient(#aaa 50%, #ddd 50%);
background-size: 100% 30px;

在这里插入图片描述
如果需要多种颜色的条纹,设置多种颜色渐变即可。

二. 垂直条纹背景

想要生成垂直方向的条纹,只需修改渐变的方向即可(别忘了把 background-size 颠倒一下):

background: linear-gradient(to right, #aaa 50%, #ddd 0);
background-size: 30px 100%;

注:to right 也可以写成90deg。
在这里插入图片描述

三.斜向条纹背景

如果直接修改渐变方向,使其倾斜45°,并且修改 background-size ,会得到下面的效果:

background: linear-gradient(45deg, #aaa 50%, #ddd 0);
background-size: 30px 30px;

在这里插入图片描述
注:linear-gradient(45deg, #aaa 50%, #ddd 0);中最后一个色标#ddd 0为什么可以这么写,可以参考之前的文章《深入理解Css linear-gradient线性渐变》。

而我们需要的效果是把整个背景旋转45°,而不是把每个小切片旋转45°。仔细观察会发现,想要通过小切片拼接成完整的斜向条纹,只需将每个切片分割为四份。
在这里插入图片描述
4份切片如下:
在这里插入图片描述

因此需要新增两个色标:

background: linear-gradient(45deg, #aaa 25%, #ddd 0, #ddd 50%, #aaa 0, #aaa 75%, #ddd 0);
background-size: 30px 30px;

调整 background-size ,增加条纹宽度:

background: linear-gradient(45deg, #aaa 25%, #ddd 0, #ddd 50%, #aaa 0, #aaa 75%, #ddd 0);
background-size: 60px 60px;

在这里插入图片描述
此时,条纹宽度比之前变宽:
在这里插入图片描述
根据勾股定理,条纹宽度W = 60Math.sqrt(2,2) ,约为21.2,而之前的条纹宽度为15。条纹的宽度如果想和上面的同样设置为15px,那 background-size 就需要根据勾股定理求出准确的值:
当条纹宽度为15,有4个同样的条纹宽度切片,此时L = 15
4 = 60,那么根据三角函数关系:条纹宽度W / L= Math.sqrt(2,2) ,得到W = 30 * Math.sqrt(2,2) ,约为42.4。由此可见这种方法不够灵活,想要其他倾斜角度的条纹有点麻烦。

想要灵活地实现不同角度的条纹,这时候就需要用到 repeating-linear-gradient() ,重复线性渐变。

所谓的重复线性渐变,就是沿着线性渐变线的两个方向上无线延伸重复。在这里需要注意一点就是,我们在设置渐变色标时应该同时给出其偏移量,否则无法实现重复渐变的效果。

重复线性渐变会循环色标,直到填满整个背景,用它来实现上面的效果:

background: repeating-linear-gradient(45deg, #aaa 0, #aaa 15px, #ddd 0, #ddd 30px);

注:此时不要设置background-size。

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CSS linear-gradient函数用于创建一个线性渐变的背景图像。这个函数可以接受多个颜色值作为参数,每个颜色值定义了渐变的一个色标点。渐变的方向由起点和终点决定。 示例用法: background-image: linear-gradient(blue, blue) left top, linear-gradient(blue, blue) left top, linear-gradient(blue, blue) right top, linear-gradient(blue, blue) right top, linear-gradient(blue, blue) left bottom, linear-gradient(blue, blue) left bottom, linear-gradient(blue, blue) right bottom, linear-gradient(blue, blue) right bottom; background-repeat: no-repeat; background-size: 1px 24px, 24px 1px; 这个用法创建了一个四角边框效果,通过设置8个线性渐变来实现。每个线性渐变都使用相同的起点和终点,颜色值为blue,使得边框呈现蓝色。可以通过调整background-size来控制边框的粗细。 另外,线性渐变还可以用于创建棋盘效果。示例代码如下: background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.3) 10%, rgba(0, 0, 0, 0) 10%), linear-gradient(rgba(0, 0, 0, 0.3) 10%, rgba(0, 0, 0, 0) 10%); background-size: 30px 30px; background-color: white; height: 200px; 这个用法创建了一个由黑色和透明色交替组成的棋盘效果。通过设置两个线性渐变,每个渐变的色标点包括一个透明点和一个黑色点,使得背景呈现交替的黑白方块。 总结来说,CSS linear-gradient函数可以通过设置不同的颜色值和参数调整来实现各种不同的渐变效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【csslinear-gradient的几种用法](https://blog.csdn.net/yehuozhili/article/details/103401191)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [linear-gradient的用法详解](https://blog.csdn.net/u012436704/article/details/107189718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [CSS3,线性渐变linear-gradient)的使用总结](https://download.csdn.net/download/weixin_38702047/14906247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓风伴月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值