# 背景图

332 阅读4分钟

背景图

background-image:url();

控制背景图是否重复:background-repeat

  • background-repeat:repeat;​ 默认情况 重复
  • background-repeat:no-repeat; 不重复
  • background-repeat:repeat-x; 只有水平方向重复
  • background-repeat:repeat-y; 只有垂直方向重复

控制背景图的位置:background-position

  • 使用方位值(内容里面直接写上下左右来控制)
  • background-position:right bottom;
  • 使用长度 控制它的主轴跟交叉轴位置,可以为负数,超出 padding 部分自动隐藏
  • background-position: 20px 50px;
  • background-position: -20px -50px;

控制背景图附着情况:background-attachment

background-attachment 设置背景图像是否固定或者随着页面的其余部分滚动。

  • 默认情况 随着页面一起滚动
  • background-attachment:scroll;
  • 不随页面一起滚动
  • background-attachment: fixed; (如果设置了背景图的方位值,则它会随着视口的位置变化)

控制背景图尺寸:background-size(CSS3新增可以通过长度、百分比和关键字(contain和cover)控制

长度:

background-size: 100px 100px;

百分比:

相对于盒子的尺寸

background-size: 80% 50%;

只设置一个值时,第二个值默认为自动(随第一个值等比列缩放)

background-size: 80%;

关键字

等比列缩放,尽可能缩放背景图,但不会超过盒子(某一个方向填满盒子为止)

background-size: contain;

等比例缩放,尽可能缩放背景图,直到盒子占满,背景图超出部分不可见(全部填满盒子为止)

background-size: cover;

属性简写:

background:url()

图片拼合技术——雪碧图 sprite

1、定视口

根据插入图片的大小来确定图片宽高

2、插图片

background-image:url(路径);

{如果该元素是行类元素必须修改为块级元素或者行类块: display:inline-block 不然不会显示}

3、调整位置

background-position:宽、高;只要是雪碧图那么position里都是负数,最多是0.不能是正数。

渐变

1、线性渐变 linear-gradient()

属性:background-image:linear-gradient()

① 定义颜色的渐变方向

1).通过方位值确定渐变方向

方位值:上右下左 to( top right bottom left )

<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>

例1:从左边渐变到右边(to right),渐变的颜色变化,从黄色渐变为红色(yellow,red)。渐变颜色的区别最少应该有两个颜色。

.box1{
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: linear-gradient(to right,yellow,red);
}

渐变01.png

例2:从左下边渐变到右上边(to right top),渐变的颜色变化,从黄色渐变为红色(yellow,red)。

.box2{
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image:linear-gradient(to right top,yellow,red);
}

渐变02.png

2).通过角度定义方向 单位:deg

角度取值:上方是0deg,右方是90deg,下方是180deg,左方是-90deg

如图:

渐变角度.png

<body>
    <div class="box3"></div>
    <div class="box4"></div>
</body>

例3:从左往右

.box3 {
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: linear-gradient(90deg, yellow, green);
}

渐变03.png

例4:从上到下

.box4 {
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: linear-gradient(180deg, yellow, green);
}

渐变04.png

② 定义颜色的位置

<body>
    <div class="box5"></div>
    <div class="box6"></div>
</body>

例5:(0-20px这个区域显示yellow,20-40px这个区域显示red,40-60px这个区域显示green)

.box5{
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: linear-gradient(135deg,yellow 0px,yellow 20px,red 20px,red 40px,green 40px,green 60px);
}

渐变05.png

③ 重复效果(repeating)

例6:

.box6{
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: repeating-linear-gradient(135deg,yellow 0px,yellow 20px,red 20px,red 40px,green 40px,green 60px);
}

渐变06.png

2、径向渐变 radial-gradient

属性:background-image: radial-gradient()

使用关键字定义渐变形状 circle 表示圆形 ellipse 表示椭圆(默认情况)

<body>
    <div class="box7"></div>
    <div class="box8"></div>
    <div class="box9"></div>
    <div class="box10"></div>
    <div class="box11"></div>
</body>
默认从中心开始

例7:

.box7{
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: radial-gradient(circle,red ,yellow);
}

渐变07.png

椭圆形

例8:

.box8{
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: radial-gradient(ellipse,red ,yellow);
}
 <!-- 或 background-image: radial-gradient(red ,yellow);-->

渐变08.png

定义渐变开始的位置(at)

例9:定义开始的位置在他的宽30%,高50%的地方

.box9{
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: radial-gradient(circle at 30% 50%,red ,yellow);
}

渐变09.png

定义渐变的形状大小(在形状后空格跟上像素)

例10:渐变的形状大小为50px

.box10 {
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: radial-gradient(circle 50px at 30% 50%, red, yellow);
}

渐变10.png

定义颜色的位置

例11:50px以内是红色,50px以外是黄色。

.box11 {
    width: 200px;
    height: 100px;
    border: #000 1px solid;
    background-image: radial-gradient(circle 50px at 30% 50%, red 50px, yellow 50px);
}

渐变11.png