Reputation: 4198
I have a simple html structure
.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>
Each cabinet--rack class is a display grid and in each cell of that grid I have a button and span with background image. And I have 2 type of images thin and width.
So what I am trying to do is to make them fit grid cell (span and button) by declared width, for small it is max 125px for large it is 145px.
I tried many background types but none scale to width, so is there way to solve this, the way that will make background scale height by width?
Upvotes: 1
Views: 620
Reputation: 5777
The sequence is important: first the url
, then the repeat
and size
:
background: url("your_url_to_the_background");
background-repeat: no-repeat;
background-size: contain;
Working example: (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>
Working example: (cover)
.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>
Upvotes: 1