html - 在css网格中调整背景图像的大小,根据它们的宽度显示
问题描述
我有一个简单的html结构
.module__image--thin {
width: 100%;
max-width: 125px;
height: 100%;
}
.module__image--width {
width: 100%;
max-width: 145px;
height: 100%;
}
.cabinet {
max-width: 1080px;
}
.cabinet--rack {
display: grid;
grid-auto-flow: column;
grid-template-columns: auto;
}
.cabinet--rack--module span {
display: inline-block;
background-size: contain;
background-repeat: no-repeat;
background: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQK_GFxD_7sFWeUjtZR7CH8EKD9-4wKUKvxsw&usqp=CAU");
}
<div class="cabinet">
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
</div>
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
</div>
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
</div>
</div>
每个cabinet-rack 类都是一个显示网格,在该网格的每个单元格中,我都有一个按钮并带有背景图像。我有两种类型的图像薄和宽。
所以我想要做的是让它们通过声明的宽度适合网格单元(跨度和按钮),对于小它是最大 125px,对于大它是 145px。
我尝试了许多背景类型,但没有按宽度缩放,那么有没有办法解决这个问题,让背景按宽度缩放高度的方法?
解决方案
顺序很重要:首先是url
,然后是repeat
and size
:
background: url("your_url_to_the_background");
background-repeat: no-repeat;
background-size: contain;
工作示例:(包含)
.module__image--thin {
width: 100%;
max-width: 125px;
height: 100%;
}
.module__image--width {
width: 100%;
max-width: 145px;
height: 100%;
}
.cabinet {
max-width: 1080px;
}
.cabinet--rack {
display: grid;
grid-auto-flow: column;
grid-template-columns: auto;
}
.cabinet--rack--module span {
display: inline-block;
background: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQK_GFxD_7sFWeUjtZR7CH8EKD9-4wKUKvxsw&usqp=CAU");
background-repeat: no-repeat;
background-size: contain;
}
<div class="cabinet">
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
</div>
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
</div>
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
</div>
</div>
工作示例:(封面)
.module__image--thin {
width: 100%;
max-width: 125px;
height: 100%;
}
.module__image--width {
width: 100%;
max-width: 145px;
height: 100%;
}
.cabinet {
max-width: 1080px;
}
.cabinet--rack {
display: grid;
grid-auto-flow: column;
grid-template-columns: auto;
}
.cabinet--rack--module span {
display: inline-block;
background: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQK_GFxD_7sFWeUjtZR7CH8EKD9-4wKUKvxsw&usqp=CAU");
background-repeat: no-repeat;
background-size: cover;
}
<div class="cabinet">
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
</div>
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
</div>
<div class="cabinet--rack">
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--thin"></span>
</button>
<button class="cabinet--rack--module">
<span class="module__image--width"></span>
</button>
</div>
</div>
推荐阅读
- git - 我正在寻找一个命令来查找修复我的提交的所有提交
- reactjs - 任何使用 Electron.js 的方式
组件到 React.js 应用程序中 - r - R:在用户制作的函数中使用中介时出现未定义的列错误
- dart - 如何在 setState 上更新 webview 的 url?
- python-3.x - 如何修复'TypeError:需要一个类似字节的对象,而不是'元组'''?
- java - 按下向上和向下箭头时,Java FX 无法识别 KeyCode.UP 或 KeyCode.Down (MacBook Pro 18 - Mojave 10.14.5)
- javascript - CkEditor5 - 无法在自定义插件中调用方法并且事件不起作用
- python-3.x - 获取 TypeError:类型集的对象不是 JSON 可序列化的,当尝试通过 REST-API 发布字典时
- base64 - 我已经编码了字符串,但我不知道它是什么类型
- java - 在 Hibernate 一对一关系中保存外键的问题