45

I need this because I want to make a menu (which is made from a HTML list) appear horizontally.

I prefer not to use absolute positioning since it might become messy when I start changing the layout of the page.

I would like also to remove the indenting of the sub-lists. Is it possible?

Smi
  • 13,151
  • 9
  • 55
  • 63
M. A. Kishawy
  • 4,943
  • 11
  • 45
  • 72

4 Answers4

70

You will have to use something like below

#menu ul{
  list-style: none;
}
#menu li{
  display: inline;
}
 
<div id="menu">
  <ul>
    <li>First menu item</li>
    <li>Second menu item</li>
    <li>Third menu item</li>
  </ul>
</div>
Afnan Ahmad
  • 2,426
  • 3
  • 22
  • 41
Ravi Vanapalli
  • 9,489
  • 3
  • 30
  • 41
19

Using display: inline-flex

#menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-flex
}
<div id="menu">
  <ul>
    <li>1 menu item</li>
    <li>2 menu item</li>
    <li>3 menu item</li>
  </ul>
</div>

Using display: inline-block

#menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

#menu li {
  display: inline-block;
}
<div id="menu">
  <ul>
    <li>1 menu item</li>
    <li>2 menu item</li>
    <li>3 menu item</li>
  </ul>
</div>
Tushar
  • 4,130
  • 5
  • 22
  • 37
13

quite simple:

ul.yourlist li { float:left; }

or

ul.yourlist li { display:inline; }
roman
  • 10,867
  • 1
  • 28
  • 42
1

You can directly use inline styling something like this

<ul style="list-style: none; margin: 0; padding: 0;">
  <li style="display: inline">A</li>
  <li style="display: inline">B</li>
  <li style="display: inline">C</li>
  <li style="display: inline">D</li>
</ul>
Niraj Motiani
  • 61
  • 1
  • 7