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

相关文章
|
机器学习/深度学习 传感器 人机交互
3D人体姿态估计(教程+代码)
3D人体姿态估计(教程+代码)
|
语音技术 Python
在语音信号处理中,预加重
在语音信号处理中,预加重
810 2
|
8月前
|
分布式计算 监控 安全
产品评测|从数据标准到实时监控,深度解析Dataphin如何以智能提效与安全合规驱动企业数据价值释放
Dataphin是阿里巴巴基于OneData方法论打造的一站式数据治理与建设平台,帮助企业实现数据全生命周期管理。本文详细记录了使用Dataphin搭建离线数仓的全流程,包括环境准备、数仓规划、数据引入、处理、周期任务补数据、数据验证与分析等环节。体验中发现其离线管道任务、周期调度、补数据功能便捷高效,但也存在系统稳定性不足、文档更新滞后等问题。建议增强对JSON文件支持、优化资源推荐机制并完善脱敏操作功能,进一步提升用户体验。
|
前端开发 JavaScript 容器
CSS 实战录: 双栏、四等分、不等间距、自适应...
CSS 实战录: 双栏、四等分、不等间距、自适应...
272 0
|
11月前
|
存储 机器学习/深度学习
首个多模态连续学习综述,港中文、清华、UIC联合发布
多模态连续学习(MMCL)旨在使模型在不断学习新数据的同时,不遗忘已有知识。香港中文大学、清华大学和伊利诺伊大学芝加哥分校的研究人员发布了首个关于MMCL的全面综述。该综述介绍了MMCL的基本背景和设置,提出了基于正则化、架构、重放和提示四类方法的分类体系,并讨论了其挑战与未来研究方向。论文链接:https://arxiv.org/abs/2410.05352
271 28
|
10月前
|
前端开发
Css实现文本超出长度隐藏并用三个点结尾
Css实现文本超出长度隐藏并用三个点结尾
258 17
|
缓存 网络协议 Linux
c++实战篇(三) ——对socket通讯服务端与客户端的封装
c++实战篇(三) ——对socket通讯服务端与客户端的封装
551 0
|
存储 安全 Java
在 Java 中如何从 ArrayList 中删除空格
【8月更文挑战第23天】
190 1
|
存储 安全 生物认证
【网络安全 | 指纹识别工具】WhatWeb使用详析
【网络安全 | 指纹识别工具】WhatWeb使用详析
1261 0
【网络安全 | 指纹识别工具】WhatWeb使用详析
|
人工智能 Kubernetes Cloud Native
阿里云易立:以云原生之力,实现大模型时代基础设施能力跃升 | KubeCon 主论坛分享
阿里云易立:以云原生之力,实现大模型时代基础设施能力跃升 | KubeCon 主论坛分享