全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2025-05-25_老板让背景位置智能展示:字多居中,字少右下

您的位置:首页 >> 新闻 >> 行业资讯

老板让背景位置智能展示:字多居中,字少右下 点击关注公众号,“技术干货” 及时达!背景昨天开发,老本提了一个有趣(zhi zhang)的需求,希望一个背景图能「根据标题内容的高度,智能调整展示位置」: 「当标题内容较少时」,背景图要「靠右居中」展示,并根据区域上下裁剪,「从中间部分开始显示」: 「当标题内容较多时」,背景图要「靠右底部对齐」展示: 标题内容继续增大,图片的位置尺寸不变,固定在右下角。 简单来说,就是内容小于图片高度时,用于从图片中心开始展示,上下截断。 简单理解就是:「内容少,图居中裁;内容多,图靠下贴边。」 老板说这个要下午给客户演示用,我上个厕所,回来你发我。 我内心一万个泥马奔腾而过,老板觉得这是很简单的一句代码的事儿啊! 「看来,只能借助 AI 的力量了!」 ?本文使用 Trae 编译器完成示例 ?基础回顾由于图片作为内容展示区(div 元素)的一个背景图,那它的位置一定是通过background的相关属性控制的。 先通过 Tare 回顾下: 属性作用常用值示例background-image设置背景图url('xxx.jpg')background-size控制图像缩放方式cover,contain,100px 80pxbackground-repeat是否平铺no-repeat,repeatbackground-position控制图像显示位置right bottom,50% 100%我还是更喜欢简写的方式,让 Trae 在帮我回忆一下 你可以将以上多个属性整合为一行background简写: background: #fff url('your-image.jpg') right center / cover no-repeat; 语法结构是: background: [背景颜色] [背景图] [背景图位置] / [背景图大小] [是否平铺]; 实现方式css+js其实上述的效果无非就是通过两个类名控制,内容高度低于图片时,用一个类名控制图片样式;内容高度高于图片时,用另一个类名控制图片样式。 直接提问 Trae 来生成最简单的 html 吧: 「HTML 结构示例:」 div class="card auto-align" 标题内容,根据长度不同会影响容器高度/h2 /div 「CSS 样式实现」 .card { width: 100%; min-height: 200px; padding: 16px; background:#fff url("@/assets/svg/bg.svg") no-repeat center right/446px 326px; transition: background-position 0.3s ease; } /* 用 content 高度多的时候切换 class */ .card.bottom-align { background-position: bottom right; /* 高内容时靠底 */ } 「搭配 JS 动态判断」 const card = document.querySelector('.card'); const contentHeight = card.scrollHeight; const threshold = 326; // 326是图片高度 if (contentHeight threshold) { card.classList.add('bottom-align'); } else { card.classList.remove('bottom-align'); } 容器查询css+js 的方式虽然能实现上述效果,但是比较麻烦,我在思考能否用类似媒体查询的方式实现这个效果。通过 AI 提问,发现了一个好用的 CSS 属性:「容器查询」 「Container Query(容器查询)」是 CSS 中的一项现代特性,它允许根据 “父容器的尺寸” 而不是 “视口尺寸” 来响应式地改变样式。这与传统的媒体查询(Media Query)相比,「粒度更细、组件更独立」,非常适合组件化开发。 「它的用法也比较简单:」 步骤 1:给容器启用查询能力 .container { container-type: inline-size; container-name: card-container; } container-type是必须的属性,表示该容器可以被查询。常用值: inline-size:仅根据宽度查询size:根据宽度和高度都可查询步骤 2:使用@container编写容器查询规则 @container (min-width: 400px) { .card { font-size: 18px; } } @container (min-width: 600px) { .card { font-size: 24px; } } 如果你设置了容器名称(container-name),可以写成: @container card-container (min-width: 600px) { ... } 现在,让 Trae 帮我用容器查询实现效果吧 !DOCTYPE html html lang="zh" head meta charset="UTF-8" / title智能背景定位/title style .card { container-type: size; background: url('https://picsum.photos/id/1015/800/400') right center / cover no-repeat; padding: 20px; border-radius: 8px; color: #fff; font-family: sans-serif; margin-bottom: 40px; } @container (min-height: 300px) { .card { background: url('https://picsum.photos/id/1015/800/400') right bottom / cover no-repeat; } } /style /head body div class="card" 这是一个非常非常长的标题,可能会有多行文字,用于测试内容过多时背景图自动靠右下展示的效果。 这一段话模拟实际中可能会出现的文案,比如产品详情、新闻摘要或者营销标题等场景。 /h2 /div /body /html 容器查询虽然好用,但也要注意兼容性 浏览器支持情况支持版本「Chrome」? 支持105+(2022)「Edge」? 支持105+(Chromium)「Safari」? 支持16+(2022)「Firefox」? 支持110+(2023)「Opera」? 支持91+「IE 11」? 不支持永不支持「Android 浏览器」? 支持基于 Chrome「iOS Safari」? 支持16+关注更多AI编程资讯请去AI Coding专区:https://juejin.cn/aicoding 点击"阅读原文"了解详情~ 阅读原文

上一篇:2022-04-26_畏首畏尾的自动驾驶安全风险:自动驾驶规划中语义DoS漏洞系统化分析 下一篇:2025-04-02_定了!2025“一录同行”行程

TAG标签:

19
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价