I have a list and I want to display my li
elements horizontally and 3 per row. I\'ve been trying to get what I want, but no luck. Is there a solution?
use that witdh:33% at li section, not in ul section.
I had this same issue, but the selected correct answer did not work cause the my child items needed to have a fix width so here is my solution to show X items of fix width on DISPLAY: FLEX.
// Flex item width required: 215px
// Flex item margin 20px on each side: 215px + 20 + 20 = 255px
// I needed 3(your item per row) so: 255px * 3
// Then to (100% of parent-flex minus 255 * 3) / 2 padding on each side
// So it stays in the center.
padding: 40px calc((100% - (255px * 3)) / 2);
*, *::before, *::after {
box-sizing: border-box;
}
.parent-flex {
display: flex;
flex-wrap: wrap;
justify-content: center;
background-color: tomato;
padding: 40px calc((100% - (255px * 3)) / 2);
}
.flex-item {
height: 100px;
flex: 0 0 215px;
margin: 1em 20px;
border: 2px blue solid;
}
<div class="parent-flex">
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
</div>
Erase the width for the ul
element and add a width (between 26 and 33%) to li
. In addition, use flex-wrap: wrap;
to allow them to wrap to new lines:
.serv ul {
display: inline-flex;
flex-wrap: wrap;
margin: 0;
padding: 0;
text-align: left;
}
.serv ul li {
list-style: none;
display: inline-block;
padding: 0;
border: 1px solid #ccc;
width: 30%;}
.serv ul li span {
padding: 0px;
}
<div class="content-wrap">
<section id="section-linemove-{{$service->id}}">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="big-title3 small-area">
<h4>{{$service->title2}}</h4>
</div>
<div>
{!!$service->description!!}
</div>
</div>
<div class="serv">
<ul>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
<li>
<span class="h3-service">{{$value->title}}</span>
<p>{!!$value->description!!}</p>
</li>
</ul>
</div>
</section>
</div>
Flex container:
display: flex
not inline-flex
.flex-wrap: wrap
to allow wrapping onto multiple lines.width: 33%
if you wish it to take entire space avaiable.For 3 items per row, add on the flex items:
flex-basis: 33.333333%
flex
's shorthand like the following: flex: 0 0 33.333333%
=> which also means flex-basis: 33.333333%
..serv ul {
display: flex;
flex-wrap: wrap;
padding-left: 0;
}
.serv ul li {
list-style: none;
flex: 0 0 33.333333%;
}
<div class="serv">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
</div>