htmlcssflexbox

how can i change the gap of only one element in a flexbox?


i am creating something with css flexbox and use gap to give spacing between elements but now i want to change the spacing of only one element like

.container{
  display: flex;
  gap: 20px;
}

.items{
  width: 100px; 
  height: 100px;
  background: red;
  
}

.item-4{
  background: blue;
}
<div class="container">
  <div class="items item-1"></div>
  <div class="items item-2"></div>
  <div class="items item-3"></div>
  <div class="items item-4"></div>
  <div class="items item-5"></div>
  <div class="items item-6"></div>
</div>

Now I want to change the gap of blue box to 5px from 20px is there any way to do this


Solution


  • In your case, there's 20px on either side of your items, so applying a margin-left of -15px will give you a 5px left gap, and a margin-right of -15px will give you a 5px right gap.

    Which looks like this:

    enter image description here


    Like so:

    .container{
      display: flex;
      gap: 20px;
    }
    
    .items{
      width: 100px; 
      height: 100px;
      background: red;
      
    }
    
    .item-4 {
      background: blue;
      margin-left: -15px; /* Adapt 20px gap to 5px */
      margin-right: -15px; /* Adapt 20px gap to 5px */
    }
    <div class="container">
      <div class="items item-1"></div>
      <div class="items item-2"></div>
      <div class="items item-3"></div>
      <div class="items item-4"></div>
      <div class="items item-5"></div>
      <div class="items item-6"></div>
    </div>