css 利用 linear-gradient 实现条纹背景
1. 水平条纹背景
当给背景设置渐变效果时,默认的渐变方向是垂直由上到下的,效果如下:
{
background: linear-gradient(#aaa, #ddd);
}

尝试拉近色标的距离,会发现渐变区域变小了:
{
background: linear-gradient(#aaa 40%, #ddd 60%);
}

当渐变色的色标设置为相同位置时,过渡区域就会变成无限小,看起来的效果就会如下图所示:
{
background: linear-gradient(#aaa 50%, #ddd 50%);
}

然后通过 background-size 来调整他的尺寸,由于默认情况下背景是重复平铺的,所以得到的效果就是填满水平条纹:
{
background: linear-gradient(#aaa 50%, #ddd 50%);
background-size: 100% 30px;
}

如果某个色标的位置值比整个列表中在它之前的色标的位置值都要小,则该色标的位置值会被设置为它前面所有色标位置值的最大值。因此后面色标的位置可以写成0:
{
background: linear-gradient(#aaa 50%, #ddd 0);
background-size: 100% 30px;
}
可以通过修改色标的位置来生成不等宽的条纹:
{
background: linear-gradient(#aaa 30%, #ddd 0);
background-size: 100% 30px;
}
{
background: linear-gradient(#aaa 70%, #ddd 0);
background-size: 100% 30px;
}

如果需要多种颜色的条纹,设置多种颜色渐变即可:
{
background: linear-gradient(#aaa 33.33%, #ddd 0, #ddd 66.66%, #fff 0);
}

2. 垂直条纹背景
想要生成垂直方向的条纹,只需修改渐变的方向即可(别忘了把 background-size 颠倒一下):
{
background: linear-gradient(to right, #aaa 50%, #ddd 0);
background-size: 30px 100%;
}
/* 或 */
{
background: linear-gradient(90deg, #aaa 50%, #ddd 0);
background-size: 30px 100%;
}

3. 斜向条纹背景
如果直接修改渐变方向,使其倾斜45°,并且修改 background-size ,会得到下面的效果:
{
background: linear-gradient(45deg, #aaa 50%, #ddd 0);
background-size: 30px 30px;
}

虽然效果也很好看,但是我们需要的效果是把整个背景旋转45°,而不是把每个小切片旋转45°。仔细观察会发现,想要通过小切片拼接成完整的斜向条纹,只需将每个切片分割为四份。因此需要新增两个色标:
{
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;
}

效果虽然实现,但是条纹的宽度如果想和上面的同样设置为15px,那 background-size 就需要根据勾股定理求出准确的值,此处的结果约为42,因为这个结果不能完全整除,所以只能根据想要的精确度四舍五入取值,因此这种方法不够灵活。如果想要其他倾斜角度的条纹便很难计算 background-size 。
想要灵活地实现不同角度的条纹,这时候就需要用到 :repeating-linear-gradient() ,重复线性渐变。重复线性渐变会循环色标,知道填满整个背景:
{
background: repeating-linear-gradient(45deg, #aaa, #ddd 30px);
}

改写成上面的效果就是:
{
background: repeating-linear-gradient(45deg, #aaa 0, #aaa 15px, #ddd 0, #ddd 30px);
}

只需修改角度便可以得到不同角度的条纹:
{
background: repeating-linear-gradient(60deg, #aaa 0 15px, #ddd 0 30px);
}
{
background: repeating-linear-gradient(30deg, #aaa 0 15px, #ddd 0 30px);
}

4. 附录
MDN linear-gradient
MDN repeating-linear-gradient
css 利用 linear-gradient 实现条纹背景的更多相关文章
- 利用CCS3渐变实现条纹背景
本文摘自<CSS揭秘>中国工信出版集团 难题: 不论是在网页设计中,还是在其他传统媒介中(比如杂志和墙纸等),各种尺寸.颜色.角度的条纹图案在视觉设计中无处不在.要想在网页中实现条纹图案, ...
- css 条纹背景
先介绍文章用到的二个知识点 background-size 属性 语法 background-size: length|percentage|cover|contain; css线性渐变 linear ...
- 用css实现条纹背景
我先额外的说一下怎么用CSS绘制三角形: 绘制三角形是把边框加粗,将元素的宽高都设为0,让其余的边框颜色透明,下面我们来看实现的代码: 先把边框的颜色设置成不同颜色: #div{ border-col ...
- css条纹背景样式、及方格斜纹背景的实现
一.横向条纹如下代码: background: linear-gradient(#fb3 %, #58a %) 上面代码表示整个图片的上部分20%和下部分20%是对应的纯色,只有中间的部分是渐变色.如 ...
- CSS揭秘 技巧(五):条纹背景
条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...
- css条纹背景
一. 水平条纹 1. 两种颜色: html <div class="stripe"></div> css .stripe{ width: 250px; he ...
- [css 揭秘] :CSS揭秘 技巧(五):条纹背景
条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...
- FCC---Create a Gradual CSS Linear Gradient
Applied Visual Design: Create a Gradual CSS Linear Gradient background: linear-gradient(gradient_dir ...
- 3.纯 CSS 创作一个容器厚条纹边框特效
原文地址:3.纯 CSS 创作一个容器厚条纹边框特效 没有啥好点子呀,不爽 HTML代码: <div class="box"> <div class=" ...
- 如何用纯 CSS 创作一个容器厚条纹边框特效
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/YLqbXy 可交互视频教程 此视 ...
随机推荐
- IT工具知识-10:Markdown小技巧(不断更新)
Markdown小技巧 1. 如何实现在文内不同关键字间跳转 该技巧是基于typora软件下使用的,参考的这个教程:视频链接 该教程有两种跳转方式:一.使用Markdown语法,二.使用HTML的锚点 ...
- 语法分析~LL1的实现
语法分析之 LL1分析法实现 一.设计目的 根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析.本次实验的目的主要是加深对预测分析LL(1)分析法的理解. 二.设计要求 程序输入/ ...
- 针对FILES和PATH的操作
在修改漏洞的时候发现,根据建议都使用NIO包的FILES和PATH来进行文件操作,来保证安全性. import java.nio.file.Files;import java.nio.file.Pat ...
- 测试环境docker化实践
测试环境对于任何一个软件公司来讲,都是核心基础组件之一.测试环境伴随着发展也从单一的几套环境发展成现在的任意的docker动态环境+docker稳定环境环境体系.期间环境系统不断的演进,去适应集群扩张 ...
- Linux shell $相关的变量
代码示例1 点击查看代码 user="yaya" echo ${user} #在已定义过的变量前加$符号便可使用该变量,{}是可选的 yaya #输出结果 代码示例2 点击查看代码 ...
- Java笔记第九弹
升级版: 数据安全问题的解决 1.同步代码块 (弊端:降低了运行效率) 格式:(锁--同一把锁) synchronized(任意对象){ 多条语句操作共享数据的代码 } //sellTicket.ja ...
- 使用Docker搭建MinIO集群服务
概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用Docker的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 RELEASE ...
- Feign调用报错The bean 'XXX.FeignClientSpecification', defined in null, could not be registered....的解决办法
问题描述: 创建了两个远程调用类,一个是调用退款的,一个是调用折扣的 但是两个调用类是调用的同一个微服务 都叫@FeignClient(value = "xxx-shop") 如何 ...
- 【VSC】ERROR:GDB exited unexpectedly.
[VSC]ERROR:GDB exited unexpectedly. 记录一次调试所遇bug的查找历程 问题描述 ERROR: GDB exited unexpectedly. Debugging ...
- 使用EFCore的Code First和MySql数据库迁移
1. 感慨一下 随着.net core的持续更新和升级,至少对于从事.net开发的人员和即将踏入这个领域的人来说,我相信大家的热情还是持续高涨的.国内的.net开发生态相比于之前来说,还是大有所好转的 ...