CSS3背景与渐变

CSS3背景

背景图片区域:background-clip属性
  • 概念:指定背景绘制区域
  • 语法:background-clip: boder-box(默认值) | pdding-box | content-box
background-clip: border-box;    // 背景被裁剪到边框
background-clip: padding-box;   // 背景被裁剪到内边距
background-clip: content-box;   // 背景被裁剪到内容框
背景图片定位:background-origin属性
  • 概念:设定元素背景图片的原始起始位置
  • 语法:background-origin: boder-box | pdding-box | content-box
background-origin: border-box;    // 背景图片从border-box的最左上角起始
background-origin: padding-box;   // 背景图片从padding-box的最左上角起始
background-origin: content-box;   // 背景图片从content-box的最左上角起始

好文链接:background-position 用法详细介绍

背景图片大小:background-size属性
  • 概念:指定背景图片的大小
  • 语法:background-size: length | percentage | cover | contain
background-size: contain;      // 将背景图片等比例缩放至某一边紧贴容器边缘为止
background-size: cover;        // 将背景图片等比例缩放以填满整个容器
background-size: 800px 500px;  // 背景图片的宽度是800px,高度是500px
background-size: 800px;        // 相当于800px auto,背景图片的宽度是800px,高度等比例缩放
background-size: 50% 50%;      // 背景图片的宽度/高度都是容器的50%
background-size: 50%;          // 相当于50% auto,背景图片的宽度是容器宽度的50%,高度等比例缩放
background-size: 100% 100%;    // 背景图片的宽度/高度都是容器的100%
background-size: 100%;         // 相当于100% auto,背景图片的宽度是容器宽度的100%,高度等比例缩放
多重背景图片:background-image属性
  • 概念:为元素使用多个背景图片
  • 语法:background-image: url(img1.jpg), url(img2.jpg)
background-image: url('bg2.png'), url('bg1.jpg');
// bg2.png会覆盖bg1.jpg
背景属性整合:background属性
  • 概念:在一个声明中设置所有的背景属性
  • 语法:background:color position size repeat origin clip attachment image
background: #abcdef center 50% no-repeat content-box content-box fixed url('bg1.jpg');

// 经验之谈,还是建议以这种形式来写
background: #abcdef url('bg1.jpg') no-repeat center center;
background-size: 50%;
background-origin: content-box;
background-clip: content-box;
background-attachment: fixed;

CSS3渐变

渐变(gradients)可以在两个多个指定的颜色之间显示平稳的过渡。

线性渐变:linear Gradients属性
  • 概念:是沿着一根轴线改变颜色,从起点到终点颜色进行顺序渐变(从一边拉向另一边)
  • 语法:background: linear-gradient(direction, color-stop1,color-stop2,...)
// 从上到下(默认),可以省略方向
background: -webkit-linear-gradient(red, blue);
background:    -moz-linear-gradient(red, blue);
background:      -o-linear-gradient(red, blue);
background:         linear-gradient(red, blue);
// 从左到右
background: -webkit-linear-gradient(left, red , blue);
background:    -moz-linear-gradient(right, red, blue);
background:      -o-linear-gradient(right, red, blue);
background:         linear-gradient(to right, red , blue);  // 标准写法,建议使用
// 对角
background: -webkit-linear-gradient(       left top, red, yellow, blue);
background:    -moz-linear-gradient(   right bottom, red, yellow, blue);
background:      -o-linear-gradient(   right bottom, red, yellow, blue);
background:         linear-gradient(to right bottom, red, yellow, blue);  // 标准写法,建议使用
// 使用角度(方向)
background: -webkit-linear-gradient(135deg, red, yellow, blue);
background:    -moz-linear-gradient(135deg, red, yellow, blue);
background:      -o-linear-gradient(135deg, red, yellow, blue);
background:         linear-gradient(135deg, red, yellow, blue);
deg.png
// 颜色节点(均匀分布)
background: -webkit-linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet);
background:    -moz-linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet);
background:      -o-linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet);
background:         linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet);
// 颜色节点(按比例分布)
// 如果第一个不写值,默认0%
// 如果最后一个不写值,默认100%
// 从0到10%是红色,10%到15%是红色到橙色的过渡,以此类推
background: -webkit-linear-gradient(90deg, red 10%, orange 15%, yellow 20%, green 50%, blue 70%, indigo 80%, violet 100%);
background:    -moz-linear-gradient(90deg, red 10%, orange 15%, yellow 20%, green 50%, blue 70%, indigo 80%, violet 100%);
background:      -o-linear-gradient(90deg, red 10%, orange 15%, yellow 20%, green 50%, blue 70%, indigo 80%, violet 100%);
background:         linear-gradient(90deg, red 10%, orange 15%, yellow 20%, green 50%, blue 70%, indigo 80%, violet 100%);
// 颜色节点(使用透明)
background: -webkit-linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1));
background:    -moz-linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1));
background:      -o-linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1));
background:         linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1));

// 中间第50%的位置,透明度是0.6,建议这种方式来控制透明度的渐变
background: -webkit-linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 0.6), rgba(255, 0, 0, 1));
background:    -moz-linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 0.6), rgba(255, 0, 0, 1));
background:      -o-linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 0.6), rgba(255, 0, 0, 1));
background:         linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 0.6), rgba(255, 0, 0, 1));
// 线性渐变
background: -webkit-repeating-linear-gradient(90deg, red 0%, blue 10%, red 20%);
background:    -moz-repeating-linear-gradient(90deg, red 0%, blue 10%, red 20%);
background:      -o-repeating-linear-gradient(90deg, red 0%, blue 10%, red 20%);
background:         repeating-linear-gradient(90deg, red 0%, blue 10%, red 20%);
径向渐变:linear Gradients属性
  • 概念:从起点到终点颜色从内向外进行圆形渐变(从中间向外拉)
  • 语法:radial-gradient(center, shape size, start-color , ... , last-color);
// 颜色结点均匀分布(默认情况)
background: -webkit-radial-gradient(red, blue);
background:    -moz-radial-gradient(red, blue);
background:      -o-radial-gradient(red, blue);
background:         radial-gradient(red, blue);
// 颜色结点不均匀分布
// 0%到50%是红色,50%到70%是红色到蓝色的渐变,70%到100%是蓝色
background: -webkit-radial-gradient(red 50%, blue 70%);
background:    -moz-radial-gradient(red 50%, blue 70%);
background:      -o-radial-gradient(red 50%, blue 70%);
background:         radial-gradient(red 50%, blue 70%);
// 设置形状
// radial-gradient(shape, start-color , ... , last-color);
// circle:圆形,ellipse:椭圆(默认)

// 如果元素的宽高一样,那参数shape无论设置为circle还是ellipse,显示效果都是圆形

background: -webkit-radial-gradient(circle, red, blue);
background:    -moz-radial-gradient(circle, red, blue);
background:      -o-radial-gradient(circle, red, blue);
background:         radial-gradient(circle, red, blue);
// 设置尺寸
// radial-gradient(size, start-color , ... , last-color);
// closest-side:最近边,渐变的终点是最近的一条边
// farthest-side:最远边,渐变的终点是最远的一条边
// closest-corner:最近角,渐变的终点是最近的一个角
// farthest-corner:最远角,渐变的终点是最远的一个角


background:         radial-gradient(closest-side, red, blue);
background:         radial-gradient(farthest-side, red, blue);
background:         radial-gradient(closest-corner, red, blue);
background:         radial-gradient(farthest-corner, red, blue);
// ...兼容性处理省略...
// 设置圆心位置
// radial-gradient(center, shape size, start-color , ... , last-color);
// 圆心位置(x轴的30%,y轴的70%)

background:         radial-gradient(30% 70%, closest-side circle, red, blue);
background:         radial-gradient(30% 70%, farthest-side circle, red, blue);
background:         radial-gradient(30% 70%, closest-corner circle, red, blue);
background:         radial-gradient(30% 70%, farthest-corner circle, red, blue);
// 注意shape和size之间是用空格隔开的
// 重复渐变
background: -webkit-repeating-radial-gradient(red 0%, blue 10%, red 20% );
background:    -moz-repeating-radial-gradient(red 0%, blue 10%, red 20% );
background:      -o-repeating-radial-gradient(red 0%, blue 10%, red 20% );
background:         repeating-radial-gradient(red 0%, blue 10%, red 20% );
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容

  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,621评论 0 7
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,741评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,308评论 0 11
  • 话题背景:如今网页展示的姿势是这样的 图片来自:设计之家 炫酷的网页展示,支撑它的正是强大的CSS3,还有什么理由...
    aliensq阅读 2,032评论 0 2
  • 有人将《追风筝的人》、《摆渡人》和《偷影子的人》称为三大心灵治愈系小说。前两部书早在两年前就已经读过了,而《偷影子...
    孙灵钰阅读 21,586评论 23 93