CSS3背景样式详解(图像大小,图像位置等)

背景样式

在CSS3中,新增了3个背景属性

属性说明
background-size背景大小
background-origin背景位置
background-clip背景剪切

background-size属性

概念:在CSS3之前,我们是不能用CSS来控制背景图片大小的,背景图片的大小都是由图片实际大小确定的。

但在CSS3中,可以用background-size属性来定义背景图片的大小。

特点

  • 图片可以保有其原有的尺寸,
  • 图片拉伸到新的尺寸,
  • 图片在保持其原有比例的同时缩放到元素的可用空间的尺寸

语法::

background-size:属性值;

常用属性值

属性值说明
像素值设置背景图像的宽度和高度。只能为正值。如果设置2个属性值,则第1个属性值定义宽度,第2个属性值定义高度。如果只设置1个属性值,则表示宽度,而高度则等比例缩放
百分比父元素的百分比来设置背景图像的宽度和高度。只能为正值。如果设置2个属性值,第一个属性值设置宽度,第二个属性值定义高度。如果只设置1个属性值,该属性值表示宽度,而高度则等比例缩放
auto定义背景图像按照原始尺寸表示
cover即“覆盖”,表示把背景图像等比例缩放到完全覆盖背景区域。背景图像的某些部分也许无法在背景定位区域中。和contain相反,cover值尽可能大的缩放背景图像并保持图像的宽高比例(图像不会被压扁)。该背景以它的全部宽或者高覆盖所在容器。当容器和背景图像大小不同时,背景图的左/右或者上/下部分会被裁剪
contain即”容纳“,表示把背景图像等比例缩放到宽度或高度与容器的宽度或高度相等时,以使背景图像位于区域内,但可能使背景区部分空白。contain尽可能的缩放背景并保持图像的宽高比例(图片不会被压缩)。该背景图会填充所在的容器。当背景图和容器的大小不同时,容器的空白区域(上/下或者左/右)会显示由background-color设置的背景颜色

注意:没有被背景图片覆盖的背景区域仍然会显示用background-color属性设置的背景颜色。此外,如果背景图片设置了透明或者半透明属性,衬在背景图片后面的背景色也会显示出来

单张图片的背景大小可以使用以下方法中的一种来规定:

  • 使用关键字contain
  • 使用关键字cover
  • 设定宽度和高度值

当通过宽度和高度来定义尺寸时,可以提供一或者两个数值:

  • 当通过宽度和高度值来设定尺寸时,你可以提供一或者两个数值:
  • 如果仅有一个数值被给定,这个数值将作为宽度值大小,高度值将被设定为 auto
  • 如果有两个数值被给定,第一个将作为宽度值大小,第二个作为高度值大小。

每个值都可以是像素值 还是百分比,或者auto

实例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>背景图片的大小</title><style type="text/css">div{display:inline-block;width:200px;height:150px;border:1px solid green;margin:20px;background-image:url('../边框样式/image/son.jpg');background-repeat:no-repeat;}.a{background-size:200px 150px;}.b{background-size:100% 100%; }.c{background-size:auto;}.d{background-size:cover;}.e{background-size:contain;}</style>	</head><body><div class="a"></div><div class="b"></div><div class="c"></div><div class="d"></div><div class="e"></div></body>
</html>

运行结果
在这里插入图片描述

注意:背景图片跟普通图片(即是img标签)是不同的东西。width跟height这两个属性只能用来定义img标签图片的大小,而不能用于控制背景图片的大小

background-origin属性

概念:默认情况下,background-position属性总是以元素左上角为坐标原点定位背景图像。

在CSS3中,可以使用background-origin属性来定义背景图片是从什么地方开始平铺的,也就是定义背景图片background-image属性的原点位置的背景相对区域

语法:

background-origin:属性值;

说明

属性值

属性值说明
border-box边框区域(含边框)开始显示背景图像
padding-box默认值,从内边距区域(含内边距)开始显示背景图像
content-box内容区域(含内容)开始显示背景图像

注意:当使用background-attachment为fixed时,该属性将被忽略不起作用

边框区域,内边距区域和内容区显示如图
在这里插入图片描述

实例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>背景图片位置</title><style>div{display:inline-block;width:200px;height:150px;border:10px solid green;margin:20px;padding:20px;background-image:url('../边框样式/image/border.png');background-repeat:no-repeat;text-align-last: center;line-height:150px;font-size:20px;}.a{background-origin:border-box;}.b{background-origin:padding-box;}.c{background-origin:content-box;}</style></head><body><div class="a">border-box</div><div class="b">padding-box</div><div class="c">content-box</div></body>
</html>

运行结果
在这里插入图片描述

实际上,background-origin属性的本质是:定义background-position属性相对于什么位置来定位。如果没有设置background-position,因此浏览器会采用默认值,即"background-position:top left"。

background-clip属性

概念:background-clip属性用于定义背景图片的裁剪区域

语法:

background-clip:属性值;

属性值

属性说明
border-box默认值,从边框区域开始向外裁剪背景图像
padding-box内边距区域开始向外裁剪背景图像
content-box内容区域开始向外裁剪背景图像
text背景被裁剪成文字的前景色

边框区域,内边距区域和内容区显示如图
在这里插入图片描述

实例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>裁剪图像</title><style>div{display:inline-block;width:200px;height:150px;border:10px dotted green;margin:20px;padding:20px;background-image:url('../边框样式/image/son.jpg');background-repeat:no-repeat;text-align-last: center;line-height:150px;font-size:20px;color:white;}.a{background-clip:border-box;}.b{ background-clip:padding-box;}.c{background-clip:content-box;}.d{background-clip:text;color:rgba(0,255,255,0.6);}</style></head><body><div class="a">border-box</div><div class="b">padding-box</div><div class="c">content-box</div><div class="d">text</div>
</html>

运行结果
在这里插入图片描述

多重背景图像

概念:

所谓的多重背景图像,指的是该元素的背景图像不止一张

在CSS3之前版本中,一个容器中只能填充一幅背景图像,如果重复设置,后设置的背景图像会覆盖之前的背景图像

但在CSS3的背景图像功能增强了很多,允许在一个容器里显示多幅背景图像,使背景图像效果更容易控制。

CSS3中没有为实现多重背景图像提供对应的属性,而是通过background这个复合属性来实现多重背景图像的效果,各属性值之间用英文逗号(,)隔开。

实例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>多重背景图像</title><style>div{width:1200px;height:800px;border:1px solid blueviolet;background:url("../边框样式/image/fish4.png") left center no-repeat ,url("../边框样式/image/fish.png") top center no-repeat;}</style></head><body><div></div></body>
</html>

运行结果
在这里插入图片描述

除了运用background复合属性,也可以通过background属性的子属下background-image、background-repeat、background-position等属性提供多个属性值来实现多重背景图像的效果

/* background复合属性 */background:url("../边框样式/image/fish4.png") left center no-repeat ,url("../边框样式/image/fish.png") top center no-repeat;/* background子属性,这两者效果是一样的*/background-image: url("../边框样式/image/fish4.png"),url("../边框样式/image/fish.png");background-repeat:no-repeat;background-position:left center,top center;background-size:40%;

这两者是等价的,运行效果都一致的。

说明:多重背景图像在实际开发中,不建议使用多张背景图片,因为每多一张图片就会多引发一次HTTP请求,势必影响页面加载速度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338413.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1 快速前端开发

1 前端开发 目的&#xff1a;开发一个平台&#xff08;网站&#xff09;- 前端开发&#xff1a;HTML、CSS、JavaScript- Web框架&#xff1a;接收请求并处理- MySQL数据库&#xff1a;存储数据地方快速上手&#xff1a;基于Flask Web框架让你快速搭建一个网站出来。1.快速开发…

【python基础】一文搞懂:Python 中轻量型数据库 SQLite3 的用法

一文搞懂&#xff1a;Python 中轻量型数据库 SQLite3 的用法 文章目录 一文搞懂&#xff1a;Python 中轻量型数据库 SQLite3 的用法1 引言2 SQLite3 简介3 基本步骤4 示例代码4.1 连接数据库4.2 创建表4.3 插入数据4.4 查询数据4.5 更新/删除数据4.6 关闭数据库连接 5 实例演示…

虚拟机安装intel架构的银河麒麟V10(SP1)

一 背景 银河麒麟是国产操作系统之一&#xff0c;是基于Linux内核的桌面操作系统&#xff0c;有自己的应用中心&#xff0c;具有一定的生态系统。今从官网下载了V10&#xff08;SP1&#xff09;镜像文件&#xff0c;在Windowns的VMware虚拟机上安装试用。 官网&#xff1a;http…

web缓存之nginx缓存

一、nginx缓存知识 网络缓存位于客户端和 "源服务器 "之间&#xff0c;保存着所有可见内容的副本。当客户端请求缓存中存储的内容时&#xff0c;它可以直接从缓存中检索内容&#xff0c;而无需与服务器通信。这样&#xff0c;网络缓存就 "接近 "了客户端&a…

idea git回滚之前提交记录

提交代码时&#xff0c;如果不小心提交了不需要提交的内容&#xff0c;在本地仓库中&#xff0c;此时需要回滚版本&#xff0c;如何回滚 1.打开git控制台&#xff0c;左下角git,选择要处理的分支&#xff0c;选择刷新获取最新git提交记录 2&#xff09;选中自己commit需要回滚…

软件测试|详解 Pytest 参数化:简化测试用例的编写

简介 Pytest 是一个广泛使用的 Python 测试框架&#xff0c;它提供了丰富的功能来编写和执行测试用例。其中一个强大的特性是参数化&#xff0c;它允许我们通过一种简洁的方式运行多个输入参数的相似测试用例&#xff0c;从而减少冗余的代码。本文将详细介绍 Pytest 的参数化功…

臻牧签约实在RPA,数据流通效率飙升!

臻牧是一家集研发、生产、销售、服务于一体的综合型公司&#xff0c;十年行业领跑&#xff0c;由“国民好演员”海清担任品牌代言人。陕西自有13000平米省级示范乳品工厂&#xff0c;牵手西交大成立小分子羊奶粉研究中心&#xff0c;每年千万投入持续攻坚科研&#xff0c;全线支…

Unicode编码:打破语言壁垒,实现无缝交流

Unicode编码是一种用于表示文本字符的编码系统&#xff0c;它旨在解决不同字符集之间相互兼容的问题&#xff0c;使各种语言和文化得以在数字世界中无缝交流。本文将从多个方面介绍Unicode编码的概念、原理及其在现实中的应用&#xff0c;为您揭示这个神秘编码背后的故事。 Un…

多个显示设备接入卡开机Logo问题分析报告

1 关键字 显示设备&#xff1b;HDMI&#xff1b;开机Logo&#xff1b; 2 问题描述 问题环境&#xff1a; 系统版本&#xff1a;OpenHarmony-3.2-Release 问题现象&#xff1a; 插入外接显示器&#xff0c;启动系统偶现卡开机Logo。 3 问题原因 3.1 正常机制 系统启动成…

汽车IVI中控开发入门及进阶(十二):手机投屏

前言: 汽车座舱有车载中控大屏、仪表/HUD多屏的显示能力,有麦克风/喇叭等车载环境更好的音频输入输出能力,有方控按键、旋钮等方便的反向控制输入能力,还有高精度的车辆数据等。但汽车座舱中控主机硬件计算能力升级迭代周期相对较长,汽车的应用和服务不够丰富。现在很多汽…

跟我学java|Stream流式编程——Stream 的终端操作

orEach 和 peek forEach和peek都是Stream API中用于遍历流中元素的操作方法&#xff0c;它们在处理流的过程中提供了不同的功能和使用场景。 forEach&#xff1a;forEach是一个终端操作方法&#xff0c;它接受一个Consumer函数作为参数&#xff0c;对流中的每个元素执行该函数…

电脑找不到d3dcompiler43.dll怎么修复,教你5个可靠的方法

d3dcompiler43.dll是Windows操作系统中的一个重要动态链接库文件&#xff0c;主要负责Direct3D编译器的相关功能。如果“d3dcompiler43.dll丢失”通常会导致游戏无法正常运行或者程序崩溃。为了解决这个问题&#xff0c;我整理了以下五个解决方法&#xff0c;希望能帮助到遇到相…