background 可设置背景色、渐变、背景图等,本文主要讲解背景图片的用法。

背景顾名思义就是背后的景色,始终居于元素背后,元素永远站在背景的身前。

本文示例中所使用的图片:

background 背景

background 此属性是一个简写,其包含的内容有点多:

background-clip 设置裁剪显示区域

background-color 设置背景颜色

background-image 设置背景图片

background-origin 设置背景原点位置

background-position 设置背景图片初始位置

background-repeat 设置背景图片重复方式

background-size 设置背景图片尺寸

background-attachment 设置背景图片是否随页面滚动

可以在一次声明中定义一个或多个属性背景相关的值。

设置背景色 background-color: #ccc; 等同于 background: #ccc;

设置背景图片 background-image

注意看边框之下还出现了一部分背景图,这便是背景重复与裁剪默认属性影响的。

设置背景原点位置 background-origin 和 背景显示区域 background-clip 常用三个值:

padding-box :背景摆放以 padding 区域为参考(默认值)

border-box :背景摆放以 border 区域为参考

content-box :背景摆放以 content 区域为参考

以上值可能出现 0 次、1 次或 2 次。

如果出现 1 次,它同时设定 background-origin 和 background-clip。如下:

如果出现 2 次,第一次的出现设置 background-origin,第二次的出现设置 background-clip。如下:

不同值的区别:

设置背景图片初始位置 background-position

此属性可以使用关键字,也可以使用百分比,还可以是固定像素。

关键字 center = 50%top = 0%left = 0%bottom = 100%right = 100%

注意:本例中使用了 background-repeat: no-repeat; 控制背景图片不重复,使用 background-size: 60px; 控制背景图片宽度为 60px。

一个值用法

关键字 center,用来居中背景图片。

关键字 topleftbottomright 用来指定把这个背景图片放在哪一个边界,另一个维度被设置成 50% 也就是 center 。

两个值用法

一个定义水平方向 x 坐标,另一个定义垂直方向 y 坐标。

特别注意:使用关键字不分先后,浏览器会自动排序识别,比如 top leftleft top 都是正确的。但使用百分比和固定像素时需注意,第一个值一定是 x 坐标,第二个值一定是 y 坐标。如果位置不对,浏览器会判断值无效,比如 bottom 5%5px left 都是无效写法。

使用固定像素:

三个值用法

其中两个值是关键字值,第三个是前面值的偏移量。

比如 left 10px bottom 表示将背景图片放在左边 10px,距离底部 0px。

比如 left bottom 10px 表示将背景图片放在左边 0px,距离底部 10px。

四个值用法

第一个和第三个值是定义水平方向 x 和垂直方向 y 的关键字值,第二个和第四个值是前面 x 和 y 关键字值的偏移量。

比如 right 10px bottom 20px 表示将背景图片放在右边 10px,距离底部 20px。

设置背景图片重复方式 background-repeat

其值可以是单值,也可以是双值,双值第一个值是水平方向 x 轴,第二个值是垂直方向 y 轴。

单值 等价于双值
repeat-x 重复水平 x 轴 repeat no-repeat
repeat-y 重复垂直方向 y 轴 no-repeat repeat
repeat 水平和垂直方向都重复 repeat repeat
space 重复并且使用间距填充 space space
round 重复并且进行缩放 round round
no-repeat 不重复 no-repeat no-repeat

四种常见用法:

space

背景也会重复显示,但会保证最后一个背景图完整显示,多出来的空间重复元素之间会留白,比如:

如图蓝色区域便是重复元素之间的留白。

round

背景也会重复显示,也会保证最后一个背景图完整显示,如果有多出来的空间,则背景图进行缩放显示,比如:

space 、 round 、 repeat 三种方式对比:

设置背景图片尺寸 background-size

其值也可以一个值或两个值,只有一个值时,第二个值会默认为 auto ,比如 background-size: 60px; 等价于 background-size: 60px auto;

cover 等比缩放背景图片以完全覆盖盒子,长宽至少有一面能完全展示,可能背景图片有部分看不见。如下便是宽度完全展示,高度被裁切了:

contain 等比缩放背景图片让盒子完全能装下整个背景图,长宽都能完全展示,可能盒子背景会部分空白。如下宽高都完全显示,由于等比缩放,所以宽度出现了留白:

设置背景图片是否随页面滚动 background-attachment

background-attachment: fixed; 相对于浏览器窗口固定,不随内容滚动,如下:

background-attachment: local; 会随着内容滚动,像是内容一部分一样,如下:

background-attachment: scroll; 相对于元素本身固定,而不随着内容滚动,如下:

多个背景图片使用方法

在古老的过去,背景图是不允许使用多张图片的,如果使用多个背景图必须使用多个盒子元素,后来 CSS3 的引入了新的规范,允许一个盒子元素使用多张背景图片。使用方法如下:

.box {
background: no-repeat center/80% url('./0.png'), no-repeat bottom/80% url('./1.png');
}

总结

本文介绍了 CSS 背景图的基础用法,强大的 background 属性还可设置各种渐变,容后文介绍。

参考资料:https://developer.mozilla.org/zh-CN/docs/Web/CSS/background

Web前端入门第 31 问:CSS background 元素背景图用法全解的更多相关文章

  1. 好程序员web前端分享值得参考的css理论:OOCSS、SMACSS与BEM

    好程序员web前端分享值得参考的css理论:OOCSS.SMACSS与BEM 最近在The Sass Way里看到了Modular CSS typography一文,发现文章在开头部分就提到了OOCS ...

  2. web前端入坑第五篇:秒懂Vuejs、Angular、React原理和前端发展历史

    秒懂Vuejs.Angular.React原理和前端发展历史 2017-04-07 小北哥哥 前端你别闹 今天来说说 "前端发展历史和框架" 「前端程序发展的历史」 「 不学自知, ...

  3. 进击的Python【第十三章】:Web前端基础之HTML与CSS样式

    进击的Python[第十四章]:Web前端基础之HTML与CSS样式 一.web框架的本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客 ...

  4. 好程序员web前端分享18个用CSS制作出来的东西

    好程序员web前端分享18个用CSS制作出来的东西,与流行的看法相反,CSS不仅仅是用来提供一个WEB页面的基本风格,以使它看起来更有吸引力.还有很多其他的事情,CSS也可以做的很好.由于它创建动画和 ...

  5. Android零基础入门第31节:几乎不用但要了解的AbsoluteLayout绝对布局

    原文:Android零基础入门第31节:几乎不用但要了解的AbsoluteLayout绝对布局 前面几期基本学习了Android开发中常用的四种布局,之所以把AbsoluteLayout放在后面来学习 ...

  6. web前端入坑第二篇:web前端到底怎么学?干货资料! 【转】

    http://blog.csdn.net/xllily_11/article/details/52145172 版权声明:本文为博主[小北]原创文章,如要转载请评论回复.个人前端公众号:前端你别闹,J ...

  7. web前端学习(三)css学习笔记部分(8)-- SVN的介绍和应用、CSS动画效果、CSS3布局属性全接触

    15.SVN的介绍和应用 15.1.SVN的介绍和应用课程概要 将代码进行集中管理,有版本号的进行迭代,方便集体工作的build流程 15.2.SVN的介绍 SVN是Subversion的简称,是一个 ...

  8. Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)

    Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维护,根据MIT许可证发布,支持 Wind ...

  9. web前端(7)—— 了解CSS样式,引入css样式的方式

    CSS 在前面大概的介绍了css,从本片博文开始,会详细的介绍它,在最开始介绍web前端时,打开百度首页,当时我提出了一个问题,为什么百度首页的输入框可以放在正中间,就是由于有css的控制,我们可以打 ...

  10. [转载]Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)

    http://brackets.io/ Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维 ...

随机推荐

  1. RocksDB-键值存储

    存储和访问数百PB的数据是一个非常大的挑战,开源的RocksDB就是FaceBook开放的一种嵌入式.持久化存储.KV型且非常适用于fast storage的存储引擎.   传统的数据访问都是RPC, ...

  2. java基础知识回顾之java Thread类学习(四)--线程的状态以及转化使用的方法介绍

    java基础知识回顾之java Thread类学习(十)--线程的状态以及转化使用的方法介绍      线程的概述:         线程是程序的多个执行路径,执行调度的单位,依托于进程存在.线程不仅 ...

  3. 链路追踪 Sleuth 和 Zipkin

    微服务的链路追踪概述: 分布式链路追踪(Distributed Tracing),就是将一次分布式请求还原成调用链路,进行日志记录,性能监控并将一次分布式请求的调用情况集中展示.比如各个服务节点上的耗 ...

  4. 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多线程技术的高性能实践

    背景 我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今的 QPS 突破 240 次/秒,连接数突破 4000,日请求数接近 1000 ...

  5. RoboMaster- RDK X5能量机关实现案例(一)识别

    作者:SkyXZ CSDN:https://blog.csdn.net/xiongqi123123 博客园:https://www.cnblogs.com/SkyXZ 在RoboMaster的25赛季 ...

  6. SqlServer性能检测之Sql语句排查

    很多时候,我们在用SQL语句查询数据时,难免会漏掉对SQL语句性能的考虑,所以有时就会造成SqlServer服务占用过高的问题,为了大致排查是哪些SQL语句造成的问题,我们可以通过如下SQL查询出最近 ...

  7. 单用户模式启动 CentOS/RHEL 7/8 的三种方法

    单用户模式启动 CentOS/RHEL 7/8 的三种方法   单用户模式,也被称为维护模式,超级用户可以在此模式下恢复/修复系统问题. 通常情况下,这类问题在多用户环境中修复不了.系统可以启动但功能 ...

  8. .NET适配HarmonyOS进展

    1. 前言 目前国产化系统浪潮下,适配鸿蒙是中国软件大势所趋,.NET作为最适合开发客户端语言之一,适配鸿蒙系统(HarmonyOS Next)是目前.NET开发者最关心的事情.我目前业余时间正在移植 ...

  9. Flink同步mysql写入Iceberg异常,一秒写入一次

    1.现象 在Iceberg数据湖治理过程中发现,同步任务运行7天没有写入数据,运行7天后突然大批量产生Commit,一秒产生一个Commit. 2.问题 Flink写入checkpoint时会在che ...

  10. 快速配置Azure DevOps代理服务器

    快速配置Azure DevOps代理服务器(CentOS 7) Azure DevOps非常好用,但是代理服务器的配置相对有点麻烦而且易出问题,接下来笔者分享一下如何快速配置Azure DevOps的 ...