css 条纹背景
先介绍文章用到的二个知识点
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 条纹背景的更多相关文章
- css条纹背景
一. 水平条纹 1. 两种颜色: html <div class="stripe"></div> css .stripe{ width: 250px; he ...
- css条纹背景样式、及方格斜纹背景的实现
一.横向条纹如下代码: background: linear-gradient(#fb3 %, #58a %) 上面代码表示整个图片的上部分20%和下部分20%是对应的纯色,只有中间的部分是渐变色.如 ...
- CSS 条纹背景深入
一.水平渐变 实现水平条纹很简单 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- 用css实现条纹背景
我先额外的说一下怎么用CSS绘制三角形: 绘制三角形是把边框加粗,将元素的宽高都设为0,让其余的边框颜色透明,下面我们来看实现的代码: 先把边框的颜色设置成不同颜色: #div{ border-col ...
- CSS揭秘 技巧(五):条纹背景
条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...
- [css 揭秘] :CSS揭秘 技巧(五):条纹背景
条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...
- 利用CCS3渐变实现条纹背景
本文摘自<CSS揭秘>中国工信出版集团 难题: 不论是在网页设计中,还是在其他传统媒介中(比如杂志和墙纸等),各种尺寸.颜色.角度的条纹图案在视觉设计中无处不在.要想在网页中实现条纹图案, ...
- img只显示图片一部分 或 css设置背景图片只显示图片指定区域
17:14 2016/3/22img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片左 ...
- CSS 设置背景透明度,不影响子元素
由于 opacity 属性能被子元素继承,使用它设置父元素背景透明度时也会影响子元素. 解决方法: 1> 使用 RGBA Example .classname { /* RGBa, 透明度0.6 ...
随机推荐
- width:100%以什么为基准的测试
起初是遇到这样一个问题:当盒模型设为box-sizing:border-box;(移动端上经常这么干).子盒子的width:100%,子盒子的width等于父盒子contend的长度还是condend ...
- CodeCraft-19 and Codeforces Round #537 (Div. 2) C. Creative Snap 分治
Thanos wants to destroy the avengers base, but he needs to destroy the avengers along with their bas ...
- there is already 'RtController' bean method 项目报错
今天开发项目时候发现项目报错启动的时候,也没有具体指的是哪一行报错,其实很简单的知道,首先看下报错信息: there is already 'RtController' bean method pub ...
- redis中使用lua脚本
lua脚本 Lua是一个高效的轻量级脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能 使用脚本的好处 1.减少网络开销,在Lua脚 ...
- 理解Javascript_02_执行上下文02
上一篇我们讲到在全局环境下的代码段中,执行上下文环境中如何处理数据: 变量.函数表达式——变量声明,默认赋值为undefined: this——赋值: 函数声明——赋值: 这篇文章讲关于函数执行上下文 ...
- Android GPS应用(获取定位信息)
1.介绍 2.使用方法 3.在AndroidManifest.xml文件中添加 <uses-permission android:name="android.permission.AC ...
- 1076 Wifi密码 (15 分)
// 思路是网上以一位大神的,特简单直接采用字符串,判断长度,还有最后一个元素是否T,便可通过ASCll输出数字:#include <iostream> #include <stri ...
- linux中tr的功能多多
功能 通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能. 您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来 ...
- POJ 2763 (LCA +RMQ+树状数组 || 树链部分) 查询两点距离+修改边权
题意: 知道了一颗有 n 个节点的树和树上每条边的权值,对应两种操作: 0 x 输出 当前节点到 x节点的最短距离,并移动到 x 节点位置 1 x val 把第 x 条边的权值改为 ...
- POJ:2456 Aggressive cows(z最大化最小值)
描述 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1,000, ...