<ul>
<li>item1</li>
<li>item1</li>
<li>item1</li>
<li>item1</li>
<li>item1</li>
<li>item1</li>
</ul>
Let's say each box is 150px
wide, so total width per row is 450px
.
What I am trying to do is, automatically make the list allow only 3 boxes (list elements) per row, and not make it go under each other.
I've tried something, and not just asking before trying!
There's my attempt:
<div class="container">
<ul>
<li>hreyyy</li>
<li>hreyyy</li>
<li>hreyyy</li>
<li>hreyyy</li>
<li>hreyyy</li>
<li>hreyyy</li>
</ul>
</div>
.container {
width: 450px;
}
.container ul li {
width: 150px;
height: 100px;
background-color: red;
float: left;
}
.container ul {
display: inline;
}
Result:
(source: gyazo.com)
It' doesn't function as I wanted, why?
Is there a plugin for it that makes life easier?
Three or more different div can be put side-by-side using CSS in the same div. This can be achieved with flexbox – but note that you will need to use wrapper divs and apply different flex-directions to each in order to make the grid layout work. Use CSS property to set the height and width of div.
Three or more different div can be put side-by-side using CSS. Use CSS property to set the height and width of div and use display property to place div in side-by-side format. float:left; This property is used for those elements(div) that will float on left side.
To get all elements to appear on one line the easiest way is to: Set white-space property to nowrap on a parent element; Have display: inline-block set on all child elements.
You don't need to set the UL to display as an inline object. Instead, do something like this:
.container {
width: 450px;
}
.container ul {
padding: 0; /* remove default padding and all margins! */
margin: 0;
list-style-type: none; /* remove the • */
}
.container ul li {
width: 150px;
height: 100px;
background-color: red;
float: left;
}
Result: http://jsfiddle.net/f896G/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With