先介绍文章用到的二个知识点

background-size 属性

语法

background-size: length|percentage|cover|contain;

css线性渐变

linear-gradient(to  <side-or-corner>)||<angle>,<color-stop>,<color-stop>)

<side-or-corner> = [left | right] || [top | bottom]

用角度值指定渐变的方向(或角度)。

<color-stop> = <color> [ <length> | <percentage> ]

顺便说下径向渐变:radial-gradient

语法
radial-gradient( [ circle || <length> ] [ at <position> ]? ,
| [ ellipse || [<length> | <percentage> ]{2}] [ at <position> ]? ,
| [ [ circle | ellipse ] || <extent-keyword> ] [ at <position> ]? ,
| at <position> ,
<color-stop> [ , <color-stop> ]+ )

<position>
<position>background-position或者transform-origin类似。如缺省,默认为中心点。
<shape>
渐变的形状。圆形(渐变的形状是一个半径不变的正圆)或椭圆形(轴对称椭圆)。默认值为椭圆。
<size>
渐变的尺寸大小。包含的值见下表尺寸常数表。
<color-stop>
表示某个确定位置的固定色值,包含一个<color>值加上可选的位置值(相对虚拟渐变射线的<percentage>或者<length>长度值)。 百分比值0%,或者长度值0,表示渐变中心点;百分比值100%表示渐变射线与边缘形状相交的点。 其间的百分比值线性对应渐变射线上的点。
<extent-keyword>
关键字用于描述边缘轮廓的具体位置。以下为关键字常量:
常量 描述
closest-side 渐变的边缘形状与容器距离渐变中心点最近的一边相切(圆形)或者至少与距离渐变中心点最近的垂直和水平边相切(椭圆)。
closest-corner 渐变的边缘形状与容器距离渐变中心点最近的一个角相交。
farthest-side 与closest-side相反,边缘形状与容器距离渐变中心点最远的一边相切(或最远的垂直和水平边)。
farthest-corner 渐变的边缘形状与容器距离渐变中心点最远的一个角相交。

background: linear-gradient(to top,red ,blue );

我们再改下代码:

background: linear-gradient(to top,red 50% ,blue 50%);
background-:

效果图变为:

再改写:

background: linear-gradient(to top,red 50% ,blue 50%);
background-size:100% 30px ;

水平条纹出现

将颜色后面的百分比即色标所在的位置重合,形成了水平条纹效果。

假如写超过二种颜色也是可以的:

background: linear-gradient(to top,red 33.3% ,blue 0%,blue 66.7%,pink 0);
background-size:100% 90px ;

垂直条纹

原来同水平条纹,只需改下background-size和linear=gradient渐变方向

background: linear-gradient(to right,red 33.3% ,blue 0%,blue 66.7%,pink 0);
       background-size:90px 100% ;

难点:斜向条纹

假如我们想得到斜向45度的条纹图案,怎么办?

起初我这样写:

 background: linear-gradient(45deg,green 50%,yellow 0);
background-size:30px 30px ;

效果如下:

很明显这不是我们想要的。

查询资料,才知道,原来是我们图案中的每个贴片内部的渐变旋转了45度。而不是把重复的背景旋转了45度。

解决方案:

以这样的贴片,来铺满整个背景:单个贴片包含了四条条纹:

 background: linear-gradient(
45deg,green 25%,yellow 0,yellow 50%,green 0,green 75%,yellow 0); background-size:45px 45px ;

效果图:

注意:background-size的值不是贴片直角三角形的宽,而是绿色小三角的斜边长度,正在的宽度是它的高。

更好的斜向条纹

假如,需要60度的怎么办?或者10度的?

解决方案:使用linear-gradient()的加强版repeating-linear-gradient()

二者工作方式差不多,只是有一点不同:色标是无限循环重复的。直达铺满整个背景。

好处之一就是不需要background-size,直接在渐变色标中指定长度。

 background: repeating-linear-gradient(10deg,green ,yellow 45px);

上面的效果图也可以由重复渐变完成:

 background: repeating-linear-gradient(45deg,green ,green 22px,yellow 22px,yellow 45px);

重复条纹的好处就是随意改改角度就好了,不过实现水平和垂直条纹,用linear-gradient。斜向条纹用repeating-linear-gradient。

在处理45度时候,可以把二者结合。

同色系条纹

                 background:  gray;

                 background-image: repeating-linear-gradient(30deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,.1) 15px,transparent 0,transparent 30px);  

网格

我们甚至可以把多个渐变组合起来,列如,我们可以把水平渐变和垂直渐变条纹叠加起来,会形成如下的桌布图案。

     background: white;
     background-image: linear-gradient(90deg, rgba(200,0,0,0.5) 50%,transparent 0),
               linear-gradient(rgba(200,0,0,0.5) 50%,transparent 0);
     background-size: 30px 30px;

效果图:

此外,如果我们希望,网格中的格子可以调整,而网格线条的粗细保持固定,则色标的值为固定长度而不是百分比:

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

效果图;

波点图形:

background:#655;
background-image: radial-gradient(tan 30%,transparent 0),
radial-gradient(tan 30% ,transparent 0); background-position: 0 0,15px 15px ;//第二层背景的偏移定位置必须是贴片宽高的一半 background-size: 30px 30px;

效果图:

css 条纹背景的更多相关文章

  1. css条纹背景

    一. 水平条纹 1. 两种颜色: html <div class="stripe"></div> css .stripe{ width: 250px; he ...

  2. css条纹背景样式、及方格斜纹背景的实现

    一.横向条纹如下代码: background: linear-gradient(#fb3 %, #58a %) 上面代码表示整个图片的上部分20%和下部分20%是对应的纯色,只有中间的部分是渐变色.如 ...

  3. CSS 条纹背景深入

    一.水平渐变 实现水平条纹很简单 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  4. 用css实现条纹背景

    我先额外的说一下怎么用CSS绘制三角形: 绘制三角形是把边框加粗,将元素的宽高都设为0,让其余的边框颜色透明,下面我们来看实现的代码: 先把边框的颜色设置成不同颜色: #div{ border-col ...

  5. CSS揭秘 技巧(五):条纹背景

    条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...

  6. [css 揭秘] :CSS揭秘 技巧(五):条纹背景

    条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...

  7. 利用CCS3渐变实现条纹背景

    本文摘自<CSS揭秘>中国工信出版集团 难题: 不论是在网页设计中,还是在其他传统媒介中(比如杂志和墙纸等),各种尺寸.颜色.角度的条纹图案在视觉设计中无处不在.要想在网页中实现条纹图案, ...

  8. img只显示图片一部分 或 css设置背景图片只显示图片指定区域

    17:14 2016/3/22img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片左 ...

  9. CSS 设置背景透明度,不影响子元素

    由于 opacity 属性能被子元素继承,使用它设置父元素背景透明度时也会影响子元素. 解决方法: 1> 使用 RGBA Example .classname { /* RGBa, 透明度0.6 ...

随机推荐

  1. opencv学习笔记(六)---图像梯度

    图像梯度的算法有很多方法:sabel算子,scharr算子,laplacian算子,sanny边缘检测(下个随笔)... 这些算子的原理可参考:https://blog.csdn.net/poem_q ...

  2. setinterval 里面的方法记得加引号

    setinterval 里面的方法记得加引号 否则不执行

  3. Image组件

    /* Image* 用于显示图片的组件,包括网络图片,静态资源 * 常用性能: * resizeMode 图片适应模式 cover , contain , stretch * source 图片的引用 ...

  4. Hibernate学习笔记(一)—— Hibernate概述及入门

    一.Hibernatea概述 1.1 什么是Hibernate? 在介绍什么是Hibernate之前,我们先讨论一下什么是框架?框架是用来提高开发效率的,框架封装好了一些功能,我们需要使用这些功能时, ...

  5. vue 阻止冒泡弹窗小案例( 知识点:@click.stop=''")

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. CentOS7 编译安装 php7

    更新:2019-01-25 补充:CentOS 7.5 全新编译安装 PHP-7.3.1 ,补充内容接在原文之后 更新:2018-09-29 补充:新系统下编译安装PHP-7.2.5遇到的问题,补充内 ...

  7. AngularJs依赖注入写法笔记

    下面两种依赖注入写法等价: [第一种] app.controller('lrNListingController', function (Notifier, Private, timefilter, ...

  8. 洛谷 P3239 [HNOI2015]亚瑟王(期望dp)

    题面 luogu 题解 一道复杂的期望\(dp\) 思路来源:__stdcall 容易想到,只要把每张牌打出的概率算出来就可以求出\(ans\) 设\(fp[i]\)表示把第\(i\)张牌打出来的概率 ...

  9. P3332 [ZJOI2013]K大数查询

    传送门 注意操作 $1$ 是在区间的每个位置加入一个数,不是加上一个值 相当于每个位置维护的是一个集合 显然树套树 一开始想的是区间线段树套权值线段树 发现这样询问区间第 $K$ 大时就要先二分答案再 ...

  10. [微信小程序] -- wxss引用外部css文件及iconfont

    小程序引入外部文件的方式是: 只需要在其css文件写上: @import "外部css地址.wxss"; 因为项目需要, 小程序中需要使用iconfont , 很容易就想到了H5的 ...