今天看啥  ›  专栏  ›  Liyager

1-2-6【CSS核心样式】背景属性

Liyager  · 简书  ·  · 2020-10-29 23:43

忙里偷闲,写一些笔记,还是蛮有意思的。


文章内容输出来源 :拉勾教育大前端就业集训营

1.背景属性

  • 概述 :CSS中除了布局类属性,还需要添加一些背景类的内容进行页面的修饰,从而让网页变得更加的美观。

CSS通过background属性来设置背景,它是一个综合属性,可以拆分成多个单一属性。

2.背景颜色

  • 属性名 :background-color
  • 作用 :在盒子区域添加背景颜色的修饰;
  • 加载区域 :在border及以内加载背景颜色(margin不会加载);
<style>
    div{
        width: 100px;
        height: 100px;
        padding: 10px;
        border: 10px dashed red;
        margin: 10px;
        background-color: blue;
    }
</style>

说明 :注意一下,border也是背景颜色的加载范围,此处故意用“虚线样式”就是为了让大家看到边框线下面的背景颜色。

3.背景图片

  • 属性名 :background-image
  • 作用 :给盒子添加图片的背景修饰。
  • 加载范围 :默认的加载到边框及以内部分。后期如果图片不重复加载,加载从border以内开始。
  • 属性 值:url(图片路径)

说明 :背景图片压盖背景颜色显示,起始位置 不包括border 所在区域!

4.背景图是否重复

  • 属性名 :background-repeat
  • 说明 :设置添加的背景图是否要在盒子中重复进行加载。根据属性值不同,有四种重复加载方式。
  • 属性值
属性值 作用
repeat 重复,默认属性值,会使用背景图片重复加载填满整个盒子的背景区域
no-repeat 不重复,不论背景图是否大于盒子范围,都只加载一次图片
repeat-x 水平重复,使用背景图片铺满第一行,垂直方向无
repeat-y 垂直重复,使用背景图片铺满第一列,水平方向无

说明 :repeat重复显示图片,border所在区域也会被填满。

说明 :no-repeat不重复显示图片,只会显示一张图片,且在盒子左上角border内侧展示。

说明 :repeat-x水平方向重复,水平方向border所在区域也会被填满。

说明 :repeat-y垂直方向重复,垂直方向border所在区域也会被填满。

5.背景图片的定位

  • 属性名 :background-position
  • 作用 :主要用于设置 不重复的图片 在背景区域的开始加载位置。
  • 属性值 :分为三种写法, 单词表示法 像素表示法 百分比表示法 。不论哪种写法,属性值都有两个,值之间用空格分隔。
    • 第一个属性值 :表示背景图片在水平方向的位置。
    • 第二个属性值 :表示背景图片在垂直方向的位置。
  • 单词表示法
    • 水平方向 :left、center、right
    • 垂直方向 :top、center、bottom
    • 单词表示图片 与盒子背景区域 进行对应方向的对齐。

说明 :以图片在盒子中的右下角位置举例。

  • 像素表示法 :使用px为单位的数字,表示背景图片左上角针对 border以内的左上顶点 水平/垂直方向位移的距离。

说明 :图片的起始位置是border以内!不算border所在区域!

说明 :数值区分正负,负数就是对应方向的反向。

  • 百分比表示法 :使用%为单位的数字,表示背景图片左上角,在盒子border以内的宽高 - 背景图片的宽高,所在区域的位移距离。

说明 :百分比表示法比较难以理解,以水平方向为例,100%代表的是:“盒子的width + 左右padding - 图片宽度”的距离。 工作中很少用到,了解即可

6.背景附着

  • 属性名 :background-attachment
  • 作用 :设置背景图片是否要随着页面or盒子的滚动而滚动。
  • 属性值
属性值 说明
scroll 滚动的,表示背景图片与盒子保持相对位置不变,随着页面的滚动而滚走
fixed 固定的,背景图片定位变更为浏览器窗口的左上顶点,不会随着页面滚动而滚走

说明 :scroll,背景图片随着浏览器窗口的滚动而滚动。

说明 :fixed,浏览器窗口滚动,但是背景图片固定在浏览器窗口上不动。
由于图片是写在div盒子里,所以图片只能显示在盒子范围内

7.属性综合写法

  • 概述 :background属性可以将五个单一属性的值进行合写。
  • 写法 :可以有1-5个属性值,值之间用空格进行分隔,背景定位的两个属性值算作一个属性值,不能被分开也不能颠倒顺序。五个属性值之间可以互换位置。
<style>
    .box3{
        width: 200px;
        height: 200px;
        background: pink right bottom url(jianshu.jpg) scroll no-repeat;
    }
</style>

说明 :除了right bottom这两个描述背景图片位置的属性之间不能换位外,其他的属性值可以写在任意位置。

  • 注意事项
    • 如果属性值没有设置完全,其他没有设置的单一属性会按照默认值加载。
    • 如果想去层叠综合属性中的一部分,其他的属性保持不变,最好使用单一属性写法进行层叠。
 <style>
        div{
            background: url(jianshu.jpg) center center no-repeat scroll pink;
            background-color: red;
        }
</style>

说明 :使用单一属性background-color:red;层叠了综合属性中的pink。

8.背景属性的实际应用

应用一:替换插入图

  • 问题 :之前的课程中提到过,h1标签是权重最高的标签,影响着SEO搜索排名。如果直接放置公司的logo图片,就不能书写搜索关键字了。
  • 解决方案 :想要解决SEO问题,可在h1标签中输入搜索关键字,然后用background属性添加公司logo背景图。

说明 :这样一来,既展示了logo,又搞定了关键字。但是你发现,文字影响了logo的展示,怎么办?

说明 :增加了一个text-indent属性,属性值为负数。相当于把文字向左缩进了1000px,所以文字被隐藏了。
文字隐藏还有一个办法,将font-size设置为0,但是IE7以下版本浏览器会存在兼容问题,所以不推荐使用

应用二:padding区域背景图

  • 问题 :无序列表或者有序列表中,每一项的前缀想要换成图片怎么办?
  • 解决方案 :将列表中的前缀消除后,为每一项增加padding-left属性值,宽度以前缀图片宽度决定;然后为每一项增加背景图片,位置属性值为left center即可。

说明 :文字内容只能显示在width和height区域内,增加padding-left的目的就是防止背景图片和文字内容发生重叠。

9.CSS3新增背景属性

背景半透明

  • 概述 :CSS3 支持背景半透明的写法,颜色值增加了一种rgba模式。
  • rgba模式 :在rgb基础上增加了一个不透明度的设置,不透明度alpha取值范围在0-1之间,0表示完全透明,1表示完全不透明,0.5 表示半透明。
  • 书写方式 :rgba(红色,绿色,蓝色,不透明度)
  • 注意 :背景半透明是指 盒子背景颜色 半透明,盒子里面的内容、盒子背景图片 不受影响
    background-color: rgba(255,0,0,0.5);

说明 :这里描述的颜色是透明度为50%的红色。

说明 :本来背景颜色应该是亮红色,因为只有20%的透明度,所以看起来很淡。

背景缩放

  • 属性名 :background-size
  • 作用 :设置背景图片的尺寸。
  • 属性值
属性值 说明
px 1-2个像素值,只设置一个值时,以宽度为基准垂直方向等比例拉伸;设置两个值,则宽高按照像素值调整
% 1-2个百分比值,与像素值类似;百分比参考盒子的宽高属性
cover 自动调整缩放比例,把背景图缩放至足够大,以使 背景图像完全覆盖背景区域 ,若溢出则隐藏
contain 自动调整缩放比例,把背景图缩放至足够大,保证图片 完整显示在背景区域

说明 :第一个盒子中包裹的图片是图片的原尺寸大小;第二个盒子中的图片是以宽度为200px,高度等比例缩放的效果;第三个盒子中的图片,宽高分别设定为200px。

说明 :第一个盒子中包裹的图片是图片的原尺寸大小;第二个盒子中的图片是以 盒子宽度 为基准的50%,高度等比例缩放的效果;第三个盒子中的图片是以 盒子宽度 的50%, 盒子高度 的100%缩放的。

说明 :第一个盒子中包裹的图片是图片的原尺寸大小;cover会自动 按比例 缩放图片, 直至背景区域所有部分被图片覆盖

说明 :第一个盒子中包裹的图片是图片的原尺寸大小;contain会自动 按比例 缩放图片,直至 图片在水平or垂直方向完全覆盖背景区域为止
因为原图的宽度大于高度,所以是水平方向先完全覆盖,所以停止缩放

多背景

  • 概述 :CSS3 中规定,一个盒子上,可以添加多个背景图片。
  • 书写方法 :background-image 的属性值书写时,以逗号分隔多背景的URL路径地址。
  • 注意 :背景加载时,先写的背景压盖后写的背景图片。
<style>
        .box1{
            background-image:  url(star.jpg),url(jianshu.jpg),url(../baidu2.jpg);
        }
</style>

说明 :路径先写的图片,覆盖后写的图片。星星图片是最先写的、然后是简书logo、最后是百度图片。

前端文章汇总目录

https://www.jianshu.com/p/6d80dd616ff4


结束语 :一花一世界,一木一浮生,愿与诸君共勉~




原文地址:访问原文地址
快照地址: 访问文章快照