background-image中的细节

简介: background-image中的细节

目录:

一、背景
二、background-image
  1.多背景图片
  2.按钮背景
  3.linear-gradient

字数:大约800字

一、背景

之前我在一个项目中看见这样的面包屑点了之后展示的菜单按钮,当时还觉得挺新奇的,去看了一下,就只是一个普通div而已,只是通过这张背景即可,刚好细细看一下background-image这个样式。

二、background-image

mdn: background-image 属性用于为一个元素设置一个或者多个背景图像。

从文档我们知道,它可以设置一个或者多个,平时我们都是用的一个,单其实他是允许设置多个的。

1.多背景图片

这里是使用两个图片背景实现效果,对比来看,你应该能很快得到两个的区别,两张背景图片出现了层级覆盖。为什么会出现这样呢?

研究发现,在绘制时,图像以 z 方向堆叠的方式进行。先指定的图像会在之后指定的图像上面绘制。因此指定的第一个图像“最接近用户”。“z 方向堆叠”这个你应该很熟悉,因为页面的绘制本身就是这样来的,这里的背景也不除外。

<divclass="painting"></div>
<divclass="painting1"></div>

.painting{
 width: 200px;
 height: 200px;
 background-image:  url('./img/lizard.png'), url('./img/star.png');
 background-position: 40px40px, -200px -400px;
}
.painting1{
 width: 200px;
 height: 200px;
 background-image:  url('./img/star.png'), url('./img/lizard.png');
 background-position:  -200px -400px,40px40px;
}

通过改变背景图片的前后顺序,就达到上面的效果。

2.按钮背景

即然背景可以多个,那我就来三个,把按钮的背景分为左、中、右 三个图片。

因为需要控制到每个图片,所以在设置position、size、repeat时候,也是需要多个,然后逗号分隔。

background-image: a.png, b.png, c.png;
background-repeat: no-repeat, no-repeat, no-repeat;
background-position: xy, xy, xy%;
background-size: xpxypx, xpxypx, xpxypx;

button{
 width: 600px;
 height: 200px;
 max-width: 600px;
 background-image: url('./img/冰淇淋.png'), url('./img/啤酒.png'), url('./img/奶茶.png');
 background-repeat: no-repeat, no-repeat, no-repeat;
 background-position: left top, center, right bottom !important;
 background-size: 200px100%, left top, 200px100%!important;
 background-color: #fff;
 border: 10px solid orange;
 border-radius: 40px;
 font-size: 60px;
 font-weight: 700;
 color: red;
}

这样类似最开始那个按钮了。要想一个很好的背景按钮,只是需要UI设计好,三个图片,拼起来即可。

3.linear-gradient

除了我们知道的img图片之外,在css中还有linear-gradient()函数,这个函数用于创建一个表示两种或多种颜色线性渐变的图片。其结果属于gradient数据类型,是一种特别的image数据类型。

此函数细节就不说了,因为background-image需要的背景是图片,刚好linear-gradient()函数是一种特别的image数据类型。所以它也支持这里的背景。

button{
 width: 600px;
 height: 200px;
 max-width: 600px;
+ background-image: url('./img/冰淇淋.png'), linear-gradient(to right,rgba(34, 201, 248, 0.953), rgba(27, 246, 210, 0.5)), url('./img/奶茶.png');
 background-repeat: no-repeat, no-repeat, no-repeat;
 background-position: left top, center, right bottom !important;
 background-size: 200px100%, left top, 200px100%!important;
 background-color: #fff;
 border: 10px solid orange;
 border-radius: 40px;
 font-size: 60px;
 font-weight: 700;
 color: red;
}

得到效果图

相关资料:

MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-image#%E5%8F%82%E8%A7%81

相关文章
|
Web App开发 测试技术 API
WebGpu VS WebGL
首先是Web 和 WebGPU 上的图形简史.如果您还没有阅读,请阅读 - 这篇文章在很大程度上是从那篇文章开始的。我将介绍WebGPU在实践中与WebGL的比较,我在Web游戏引擎Construct中添加WebGPU支持时学到的东西,以及它对未来的意义。
225 0
|
1月前
|
存储 机器学习/深度学习
首个多模态连续学习综述,港中文、清华、UIC联合发布
多模态连续学习(MMCL)旨在使模型在不断学习新数据的同时,不遗忘已有知识。香港中文大学、清华大学和伊利诺伊大学芝加哥分校的研究人员发布了首个关于MMCL的全面综述。该综述介绍了MMCL的基本背景和设置,提出了基于正则化、架构、重放和提示四类方法的分类体系,并讨论了其挑战与未来研究方向。论文链接:https://arxiv.org/abs/2410.05352
64 28
npm 安装出错 npm ERR! request to https://registry.npmjs.org/express failed, reason: unable to verify th
npm 安装出错 npm ERR! request to https://registry.npmjs.org/express failed, reason: unable to verify th
960 0
|
6月前
|
Java Spring 容器
循环依赖难破解?Spring Boot神秘武器@RequiredArgsConstructor与@Lazy大显神通!
【8月更文挑战第29天】在Spring Boot应用中,循环依赖是一个常见问题。当两个或多个Bean相互依赖形成闭环时,Spring容器会陷入死循环。本文通过对比@RequiredArgsConstructor和@Lazy注解,探讨它们如何解决循环依赖问题。**@RequiredArgsConstructor**:通过Lombok生成包含final字段的构造函数,优先通过构造函数注入依赖,简化代码但可能导致构造函数复杂。**@Lazy**:延迟Bean的初始化,直到首次使用,打破创建顺序依赖,增加灵活性但可能影响性能。根据具体场景选择合适方案可有效解决循环依赖问题。
234 0
|
9月前
项目打包报错“caniuse-lite is outdated. Please run next command `npm update`”的解决方案
项目打包报错“caniuse-lite is outdated. Please run next command `npm update`”的解决方案
481 1
|
存储 关系型数据库 MySQL
MySQL出现Data too long for column...(错误号1406)和 Data truncated for column...(错误号1265)
MySQL出现Data too long for column...(错误号1406)和 Data truncated for column...(错误号1265)
1301 0
MySQL出现Data too long for column...(错误号1406)和 Data truncated for column...(错误号1265)
Mac处理系统快捷键与应用快捷键的冲突
Mac处理系统快捷键与应用快捷键的冲突
598 0
|
存储 资源调度 前端开发
深入解读ahooks
本文适合对打造工具函数库感兴趣的小伙伴阅读。
深入解读ahooks
|
4月前
|
Windows
IDEA如何查看已经安装的插件并删除
【10月更文挑战第1天】这段内容主要介绍了如何在IntelliJ IDEA中查看和删除已安装的插件。可以通过软件内的插件市场查看插件列表,包括插件名称、版本号和供应商等信息;也可以通过访问插件目录查看。删除插件则建议在插件市场中进行,包括禁用和卸载步骤,手动删除插件文件夹的方法不推荐,因为可能存在配置残留等问题。
1471 11

热门文章

最新文章