首页 > 其他分享 >【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?

【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?

时间:2022-12-22 14:06:08浏览次数:39  
标签:bg 背景图片 进阶 url 九宫格 png background calc card


这是我们最终想要达到的效果,并且支持任意宽高缩放不变形。

【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?_边界宽度

有些UI设计师(说的就是我)喜欢搞这种带有一丝丝机械、科技、未来感的线框,兼职前端开发的我真的很讨厌酱紫的设计也(太虚伪了~)

开始准备物料

第一步:切片,建议用九宫格的形式,切割有考究,主要是最大限度、最小尺寸囊括多个边界转角处的样式(亮蓝色是参考线,白色文字是描述区域规则,红色文字是宽高、分割输出的png图片文件名,正中的宫格就用背景色纯色)

【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?_背景色_02

第二步:输出文件(一共是8个png文件:lt、mt、rt、lm、rm、lb、mb、rb.png),需要注意小细节,我的每张图片都做了线性渐变,只为让边角和背景色更加融合(不要出现戛然而止的断层、不衔接、low逼效果:不懂什么是low逼效果看最后的那张图~~~)

 

【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?_宽高_03

 第三步:定义样式(如果嫌弃我的代码太多,可以无脑照搬直接拷贝代码,只要严格按照上图的切片命名规则,适当修改下变量$l_w、$r_w、$t_h、$b_h的像素值就可以搞定了)

<div class="sg-card"></div>
// 酷炫卡片背景************************************************
.sg-card {
// 公共变量定义----------------------------------------
$card-bg: "~@/assets/common/sg-card/"; //异形背景图片路径前缀
$card-bg-color:#020f2e; //中间背景纯色
$l_w: 46px; //左侧边界宽度
$r_w: 88px; //右侧边界宽度
$t_h: 72px; //顶部边界高度
$b_h: 46px; //底部边界高度
// ----------------------------------------

display: inline-block;//这个根据实际情况来(非必选)

min-width: calc(#{$l_w} + #{$r_w});//最小宽度等于左右两端边界宽度之和
min-height: calc(#{$t_h} + #{$b_h});//最小高度等于上下两端边界高度之和

background-color: $card-bg-color;//背景色

background-repeat: no-repeat; //一定要用不平铺的属性

// 核心代码----------------------------------------
background-image:
// 顶部左、中、右
url(#{$card-bg}lt.png), url(#{$card-bg}mt.png), url(#{$card-bg}rt.png),
// 中间层左、 右
url(#{$card-bg}lm.png), url(#{$card-bg}rm.png),
// 底部左、中、右
url(#{$card-bg}lb.png), url(#{$card-bg}mb.png), url(#{$card-bg}rb.png);

background-position:
// 顶部左、中、右
left top, $l_w top, right top,
// 中间层左、 右
left $t_h, right $t_h,
// 底部左、中、右
left bottom, $l_w bottom, right bottom;

background-size:
// 顶部左、中、右
$l_w $t_h, calc(100% - #{$l_w} - #{$r_w}) $t_h, $r_w $t_h,
// 中间层左、 右
$l_w calc(100% - #{$t_h} - #{$b_h}), $r_w calc(100% - #{$t_h} - #{$b_h}),
// 底部左、中、右
$l_w $b_h, calc(100% - #{$l_w} - #{$r_w}) $b_h, $r_w $b_h;
// ----------------------------------------
}

最后我们来看看实现的效果吧:

最小宽高样式

【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?_宽高_04

宽度400px高度300px

【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?_宽高_05

宽度900px高度400px

【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?_宽高_06

 怎么样满足你大数据展示各种需求了吧?自由适配各种宽高


这就是low逼效果图

【进阶版九宫格背景图片】如何仅仅依靠background的几个属性组合搭配出酷炫的背景图片效果,并自适应任何宽高效果?_宽高_07

标签:bg,背景图片,进阶,url,九宫格,png,background,calc,card
From: https://blog.51cto.com/u_15920212/5962839

相关文章