Web前端之背景、雪碧图

目录

一、背景

二、雪碧图


一、背景

  • background-color 设置背景颜色
  • background-image 设置背景图片
    • 如果背景图片大小小于元素,则背景图片会自动在元素中平铺将元素铺满
    • 如果背景图片大小大于元素,则背景图片一部分会无法完全显示
    • 如果背景图片大小等于元素,则背景图片会直接正常显示
  • background-repeat 设置背景图片的重复方式
    • repeat 默认值,背景图片沿着x轴和y轴双方向重复
    • repeat-x 背景图片沿着x轴方向重复
    • repeat-y 背景图片沿着y轴方向重复
    • no-repeat 背景图片不重复
  • background-position 设置背景图片的位置
    • 通过top left right bottom center几个表示方位的词来设置背景图片的位置:使用方位词时必须要同时指定两个值,如果只写一个则第二个默认就是center
    • 通过偏移量来指定背景图片的位置:水平方向偏移量、垂直方向变量
  • background-clip 设置背景的范围
    • border-box 默认值,背景会出现在边框的下边
    • padding-box 背景不会出现在边框,只出现在内容区和内边距
    • content-box 背景只会出现在内容区
  • background-origin 背景图片的偏移量计算的原点
    • border-box 背景图片的变量从边框处开始计算
    • padding-box 默认值,background-position从内边距处开始计算
    • content-box 背景图片的偏移量从内容区处计算
  • background-size 设置背景图片的大小
    • 第一个值表示宽度,第二个值表示高度;如果只写一个,则第二个值默认是auto
    • cover 图片的比例不变,将元素铺满
    • contain 图片比例不变,将图片在元素中完整显示
  • background-attachment 背景图片是否跟随元素移动
    • scroll 默认值,背景图片会跟随元素移动
    • fixed 背景会固定在页面中,不会随元素移动

可以同时设置背景图片和背景颜色,这样背景颜色将会成为图片的背景色

示例1

.box1 {
    height: 500px;
    width: 500px;
    overflow: auto;
    border: 20px red double;
    padding: 10px;
    /* 背景色 */
    background-color: darksalmon;
    /* 背景图 */
    background-image: url('/assets/背景.png');
    /* 背景图重复方式 */
    background-repeat: no-repeat;
    /* 背景图偏移位置 */
    background-position: 0 0;
    /* 背景图偏移量计算的原点 */
    background-origin: content-box;
    /* 背景范围 */
    background-clip: content-box;
    /* 背景图片大小 */
    background-size: contain;
}

.box2 {
    width: 100px;
    height: 1000px;
    background-color: orange;
    background-image: url("assets/背景2.jpg");
    background-repeat: no-repeat;
    background-position: 50px 50px;
    /* 背景图片是否跟随移动 */
    background-attachment: fixed;
}

动画

backgound 背景相关的简写属性,所有背景相关的样式都可以通过该样式来设置并且该样式没有顺序要求,也没有哪个属性是必须写的

注意

  • background-size必须写在background-position的后边,并且使用/隔开background-position/background-size
  • background-origin background-clip 两个样式,orgin要在clip的前边

示例2

.box1 {
    height: 500px;
    width: 500px;
    border: 10px red double;
    padding: 10px;
    background: #bfa url("assets/dlam.png") no-repeat 100px 100px/200px padding-box content-box;
}

 image-20210612155539118

 


二、雪碧图

解决图片闪烁的问题:

可以将多个小图片统一保存到一个大图片中,然后通过调整background-position来显示响应的图片

这样图片会同时加载到网页中就可以有效的避免出现闪烁的问题

这个技术在网页中应用十分广泛,被称为CSS-Sprite,这种图我们称为雪碧图

雪碧图的使用步骤:

  1. 先确定要使用的图标
  2. 测量图标的大小
  3. 根据测量结果创建一个元素
  4. 将雪碧图设置为元素的背景图片
  5. 设置一个偏移量以显示正确的图片

雪碧图的特点:

  • 一次性将多个图片加载进页面,降低请求的次数,加快访问速度,提升用户的体验

示例1

image-20210612230816217

a:link {
    display: block;
    width: 93px;
    height: 29px;
    background: url("assets/背景/练习2-背景/btn.png");
    /* 默认值,可以不设置 */
    background-position: 0 0;
}

a:hover {
    /* 设置水平方向的一个偏移量;注意是向左移动,所以是负值 */
    background-position: -93px 0;
}

a:active {
    /* 设置水平方向的一个偏移量;注意是向左移动,所以是负值 */
    background-position: calc(-93px*2) 0;
}

 动画

我们对比以下之前练习中的效果,第一次加载进来的时候会有明显的闪烁

动画 

示例2

image-20210612230929739 

.box1 {
    width: 109px;
    height: 33px;
    background: url("assets/背景/练习3-雪碧图/amazon-sprite_.png");
    /* 设置水平和垂直方向的一个偏移量;注意移动方向 */
    background-position: -10px -10px;
}

.box2 {
    width: 42px;
    height: 30px;
    background: url("assets/背景/练习3-雪碧图/amazon-sprite_.png");
    /* 设置水平和垂直方向的一个偏移量;注意移动方向 */
    background-position: -58px -338px;
}

 image-20210612231316806

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值