1

I have div with some child element, my requirement is if there is 2 child they take 50%-50% with of parent but if there are more than 2 child element they should we take 100% with each. only with css

senerico one :

<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
</div>

expect result child width 50%

senerico two :

<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>

expect result child width 100%

1 Answers1

1

nth-last-child() can help you:

.parent {
  display: flex;
  flex-wrap: wrap;
  border: 1px solid;
  margin: 5px;
}

.parent .child {
  height: 50px;
  background: green;
  border: 1px solid red;
  width: 50%;
  box-sizing: border-box;
}

.parent .child:nth-last-child(n + 3),
.parent .child:nth-last-child(n + 3)~* {
  width: 100%;
}
<div class="parent">
  <div class="child">1</div>
  <div class="child">2</div>
</div>

<div class="parent">
  <div class="child">1</div>
  <div class="child">2</div>
  <div class="child">3</div>
</div>

<div class="parent">
  <div class="child">1</div>
  <div class="child">2</div>
  <div class="child">3</div>
  <div class="child">4</div>
  <div class="child">5</div>
</div>
Temani Afif
  • 245,468
  • 26
  • 309
  • 415