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

相关文章
|
6月前
|
UED 开发者 容器
【CSDN创作优化2】内嵌图片 `<img>` 标签`height`和`width`属性
【CSDN创作优化2】内嵌图片 `<img>` 标签`height`和`width`属性
47 2
|
6月前
|
前端开发
背景图像[background-image]
背景图像[background-image]。
57 1
|
JavaScript
background-color设置为透明的方法
background-color设置为透明的方法
162 0
CSS3 border-image 边框图片
CSS3 border-image 边框图片
71 0
|
移动开发 前端开发
h5 video以及img控件加上border显示不全的解决方案!
h5 video以及img控件加上border显示不全的解决方案!
283 0
关于 QWidget无法使用stylesheet设置自身backgound-color(背景色)和border-image(背景图片) 的解决方法
关于 QWidget无法使用stylesheet设置自身backgound-color(背景色)和border-image(背景图片) 的解决方法
关于 QWidget无法使用stylesheet设置自身backgound-color(背景色)和border-image(背景图片) 的解决方法
|
数据采集 前端开发 JavaScript
|
前端开发
css background-image 背景图片自适应宽高
css background-image 背景图片自适应宽高
1279 0
|
程序员
好程序员分享该如何选择background-image和img标签
  好程序员分享该如何选择background-image和img标签,用img标签  如果你希望别人打印页面时候包含这张图片请使用img标签  当这张图片有非常有意义的语义,比如警告图标,请使用img标签及它的alt属性。
6811 0