正式开始文章前,先看图,看到以下图片你会想到什么呢?是不是程序员的标配来了,格子衫。没错,今天的内容就是用CSS画格子。

前言

看到上面各种各样的格子,你会用什么方式实现呢?由于格子的大小间隙及方向多变,不能每次都创建很多的元素实现,那么就没有发挥到CSS的强大实力了,以上每个格子风格都只需要一个元素承载,剩下的交给CSS吧。

仔细看格子虽然有不同的形式,但是是有规律的重复的,比如第一个格子我们可以拆解为以下两块组成。

这样看是不是就清晰多了,我们只需要写入多个条纹覆盖在一起即可。 怎么实现条纹的样式呢?那就进入到我们文章的正题。

实现

CSS repeating-linear-gradient() 函数,用于创建重复的线性渐变 "图像",基于此函数我们就可以画出格子的样式了。先看看语法:

background: repeating-linear-gradient(angle | to side-or-corner, color-stop1, color-stop2, ...);
参数名 描述
angle 定义渐变的角度方向。从 0deg 到 360deg,默认为 180deg。
side-or-corner 指定线性渐变的起始位置。由两个关键字组成:第一个为指定水平位置(left 或 right),第二个为指定垂直位置(top 或bottom)。 顺序是随意的,每个关键字都是可选的。
color-stop1, color-stop2,... 指定渐变的起止颜色,由颜色值、停止位置(可选,使用百分比指定)组成。

那么我们上面第一幅图片的样式就可以按下面的写法:

background: repeating-linear-gradient(#8ae8ff80 0 17%, transparent 0 28%);

注意点,每一个后续的重复的条纹的起止位置要包含上一个条纹的位置,不然就会出现渐变颜色。两幅图结合的格子样式最终repeating-linear-gradient代码如下:

 background:repeating-linear-gradient(to right, #998aff80 0 16%, transparent 0 28%), repeating-linear-gradient(#8ae8ff80 0 17%, transparent 0 28%);

整体代码

HTML

<div class="patterns"> <div class="plaid"> </div><div class="plaid"> </div><div class="plaid"> </div><div class="plaid"> </div><div class="plaid"> </div><div class="plaid"> </div><div class="plaid"> </div><div class="plaid"></div>
</div>

CSS

$white:#ffffff80; //white
$clr1:#998aff80; //purple
$clr2:#8ae8ff80; //baby blue
$clr3:#fffeb580; //yellow
$clr4:#ff6eff50; //pink
$clr5:#9cffe480; //green
$clr6:#ffd49c80; //orange
$clr7:#ff8a8d80; //red
$clr8:#3850eb50; //blue*{margin:0;box-sizing:border-box;
}body{height:100vh;display:flex;align-items:center; justify-content:center;
}.patterns {height:100%;width:100%;display:grid;grid-template-columns: repeat(4,1fr);border:15px solid white;}
.plaid {margin:15px;
}
// plaid styles counter clockwise
.plaid:nth-child(1){background:repeating-linear-gradient(to right, $clr1 0 16%, transparent 0 28%), repeating-linear-gradient($clr2 0 17%, transparent 0 28%);
}.plaid:nth-child(2){background: repeating-linear-gradient(45deg, transparent 0 8%, $clr3 0 14%),repeating-linear-gradient(-45deg, $white 0 6%, $clr4 0 14%), repeating-linear-gradient(-45deg, transparent 0 2%, $clr8 0 4%);
}.plaid:nth-child(3){background:repeating-linear-gradient($clr5 0 5%, transparent 0 13.6%) ,repeating-linear-gradient(to right, $clr6 0 10%, $white 0 13.6% );}
.plaid:nth-child(4){background: repeating-linear-gradient(45deg, $clr7 0 3%, transparent 0 6%),repeating-linear-gradient(-45deg, $clr8 0 3%, $white 0 6%);
}.plaid:nth-child(5){background: repeating-linear-gradient(45deg, transparent 0 10%, $clr5 0 12%),repeating-linear-gradient(-45deg, transparent 0 12%, $clr7 0 20%), linear-gradient(45deg, transparent 0 10%, $clr2 0 25%, transparent 0 45%, $clr2 0 55%, transparent 0 70%, $clr2 0 100%) ;
}.plaid:nth-child(6){background:repeating-linear-gradient(to right, $white 0 15%, $clr5 0 45%), repeating-linear-gradient(transparent 0 15%, $clr8 0 45%), repeating-linear-gradient(to right, transparent 0 20%, $clr8 0 25%);;
}.plaid:nth-child(7){background: repeating-linear-gradient(45deg, $clr2 0 5%, transparent 0 15%),repeating-linear-gradient(-45deg, $clr4 0 12%, $white 0  25%),repeating-linear-gradient($clr2 0 12%, $white 0 25%);
}.plaid:nth-child(8){background: repeating-linear-gradient( to right, $white 0 10%, transparent 0 20%),repeating-linear-gradient( $clr2 0 7%, transparent 0 10%),linear-gradient( to right, $clr8 0 70%, $clr6 0 100%);
}

最后

看到最后是不是感觉很简单,赶紧试试看吧,画出属于我们程序员的各种格子效果出来吧。如果觉得有用,点赞,关注,收藏起来,说不定哪天就用上啦~

专注前端开发,分享前端相关技术干货,公众号:南城大前端(ID: nanchengfe)

链接

Plaidish w/ Repeating Linear Gradients

CSS重复线性渐变之画格子相关推荐

  1. 【CSS】线性渐变、径向渐变

    文章目录 线性渐变 线性渐变 语法background-image:linear-gradient(方向,颜色1,颜色2-) 水平竖直方向 默认从上到下 to left 去到左边 从右往左 to ri ...

  2. CSS 背景色 背景图片 渐变背景 - 重复线性渐变 background-image: repeating-linear-gradient()

    repeating-linear-gradient() 用来生成重复的线性渐变图案 基础语法 background-image: repeating-linear-gradient(angleValu ...

  3. 微信小程序css之线性渐变

    线性渐变 注意是设置背景图片 wxml: <!--index.wxml--> <view class="container"><view class= ...

  4. 【CSS】线性渐变属性值及范例详解

    渐变色函数的结果属于 <gradient> 数据类型,是一种特别的 <image> 数据类型,所以渐变色只能被用于<image>可以使用的地方 linear-gra ...

  5. CSS使用线性渐变实现滚动进度条

    效果查看:https://codepen.io/Chokcoco/pen/KbBXQM?editors=1100 CSS: body {position: relative;padding: 50px ...

  6. css: 使用线性渐变使图片变暗

    组件的布局方式之一,是在背景图片上放置白色文字,如果图片太亮,为了增强背景和文字之间对比度,就应该使用深色覆盖(dark overlay 深色叠加)使背景图片变暗. 没有使图片变暗之前: backgr ...

  7. CSS应用:线性渐变

    渐变是从一种颜色逐渐蜕变到另一种颜色.线性渐变就是沿着一根轴线(水平.垂直或某个角度)改变颜色,从起点到终点颜色进行顺序渐变. 在这里,我将介绍在CSS中怎么实现线性渐变的方法. 线性渐变 创建线性渐 ...

  8. HTML5圆形线性渐变,css中linear-gradient()函数是干什么的?实现线性渐变的圆形边框(代码)...

    在前端开发过程中,有时会利用linear-gradient实现各种各样的效果,本章给大家介绍css中linear-gradient()函数是干什么的?实现线性渐变的圆形边框(代码).有一定的参考价值, ...

  9. html5彩虹色填充,使用css技术的线性渐变来设计彩虹

    在网页设计中,有时候会需要用到渐变效果,渐变可以创建出类似于彩虹的视觉图案效果,在没有CSS3之前,为了显示一个渐变需要专门制作一个图片,这种不法不但不灵活还增加请求数,而CSS3可以轻松实现网页渐变 ...

最新文章

  1. libcurl+ncurses 分段range批量下载和进度条显示源码实例
  2. 学界 | DeepMind论文解读:通过删除神经元来了解深度学习
  3. java json xml app交互_Java 实体 xml 和 json 之间相互转换
  4. 错误:由于系统启用了内核调试器,因此不可能进行调试解决方案
  5. 分布式服务器客户端实验
  6. XGBoost入门及实战
  7. LeetCode 825. 适龄的朋友(计数排序+前缀和)
  8. VMware ESXI 5.0群集+ISCSI存储
  9. 招聘贴---这个很重要嘛
  10. 神经网络用作分类器(附代码matlab)
  11. python中实参必须是常量吗_7 python函数参数(必须参数、可变参数、关键字参数)...
  12. 量子计算机预测未来,太厉害了吧?这台量子计算机能预测16种不同的未来!
  13. 梅林固件刷CFE教程
  14. 共享服务器协议,3.5.7 文件共享服务及SMB协议
  15. QString中如何设置上下角标(Qt)
  16. sql server数据库宕机原因分析
  17. Docker 错误 “port is already allocated” 解决方法
  18. OpenCV数字图像处理基于C++:灰度变换
  19. IT笔记-电脑内存满之系统报告过多问题
  20. STM32 HAL库ADC+DMA(非定时器)代码和遇到的问题

热门文章

  1. 计算机辅助曹瞒走华容(华容道)算法
  2. 分享两个免费在线shell
  3. 18. 地下城与勇士
  4. 网站可访问性:ARIA入门
  5. HTML5期末大作业:化妆品商城网站设计——化妆品商城-功能齐全(43页) HTML+CSS+JavaScript web大作业 静态网页
  6. 【302】302 Found 如何解决???
  7. antv 官方文档参考 ywy(基础)
  8. [光源频闪] Basler相机光源频闪设置操作说明
  9. venn diagram_Venn Diagram Python软件包:Vennfig
  10. 购买php,购买 · 【正版】PHP小程序拼团 · 看云