6、复杂的背景图案

1、网格

使用CSS渐变实现各种复杂的背景图案,其原理是:把多个渐变图案组合起来,让它们透过彼此之间的透明区域形成叠加的效果。
下面的代码可以形成网格效果,利用的是一个横向和一个纵向的红色和透明条纹叠加。

background-image: linear-gradient(90deg,rgba(200,0,0,.5) 50%,transparent 0),
                  linear-gradient(rgba(200,0,0,.5) 50%,transparent 0);
background-size: 40px 40px;

当需要网格的大小是可调整的时,可以将重复的条纹变成网格之间的线条,与纯色背景的叠加就可以实现网格。

background: #58a;
background-image: linear-gradient(90deg,white 1px,transparent 0),
                  linear-gradient(white 1px,transparent 0);
background-size: 40px 40px;

更加复杂的网格,使用两副间隔线组合起来的网格。

background: #58a;
background-image:linear-gradient(90deg,white 2px,transparent 0),
                 linear-gradient(white 2px,transparent 0),
                 linear-gradient(90deg,rgba(255,255,255,.3) 1px,transparent 0),
                 linear-gradient(rgba(255,255,255,.3) 1px,transparent 0);
background-size: 80px 80px,80px 80px,
                 20px 20px,20px 20px;

2、波点

使用径向渐变可以创造圆形,可以利用这点来实现波点图纹。

background: #655;
background-image: radial-gradient(tan 30%,transparent 0);
background-size: 40px 40px;

使用两层渐变叠加,再利用背景定位错开,使得图案更加真实。

background: #655;
background-image: radial-gradient(tan 30%,transparent 0),
                  radial-gradient(tan 30%,transparent 0);
background-size: 40px 40px;
background-position: 0 0,20px 20px;

3、棋盘

生成棋盘图案的关键在于,重复渐变的图案不是正方形,而是由两个直角三角形拼合而成的方块

background-image: linear-gradient(45deg,#bbb 25%,transparent 0);
background-image:linear-gradient(45deg,transparent 75%,#bbb 0);

将这两个渐变图案叠加,就可以形成一个正方形,就实现了棋盘的一半。

background-image:linear-gradient(45deg,transparent 75%,#bbb 0),
                 linear-gradient(45deg,#bbb 25%,transparent 0);

在让这样相同的两个渐变叠加,并且让第二个渐变的位置在水平和垂直方向上都移动渐变图案的一半。就得到了棋盘图案。

background-image:linear-gradient(45deg,transparent 75%,#bbb 0),
                 linear-gradient(45deg,#bbb 25%,transparent 0),
                 linear-gradient(45deg,transparent 75%,#bbb 0),
                 linear-gradient(45deg,#bbb 25%,transparent 0);
background-size: 40px 40px;
background-position:0 0,20px 20px,
                    20px 20px,40px 40px;

代码可以简化,可以将4层重复的渐变两两合并。

background: #eee;
background-image:linear-gradient(45deg,#bbb 25%,transparent 0,transparent 75%,#bbb 0),
                 linear-gradient(45deg,#bbb 25%,transparent 0,transparent 75%,#bbb 0);
background-size: 40px 40px;
background-position: 0 0,20px 20px;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 知识储备 1.2-5小节的linear-gradient() 展示 lea.verou.me/css3patter...
    juicees阅读 369评论 0 0
  • CSS3 gradient介绍一文中介绍了用渐变画实线条纹背景,事实上用渐变配合background背景图层可以创...
    张歆琳阅读 1,763评论 0 5
  • 所有图都在body背景设置为green下的截图,请不要把最外层的绿色当成边框 半透明边框 如果我们想给一个容器设置...
    hcxowe阅读 4,001评论 0 6
  • 我还记得国外某位大牛在一篇文章中写道,CSS is fine, it's just really hard。读完他...
    garble阅读 1,106评论 0 0
  • 小黑和男友谈及结婚,小黑带着男友去见父母,父母不同意,因为男友没有工作,让父母感觉不靠谱、没有责任心。 小黑觉得男...
    Todm阅读 252评论 0 0