Hola, lo primero que me viene a la cabeza, es display table
Cita: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>título</title>
<style type="text/css">
<!--
* { margin: 0; padding: 0; list-style-type:none;}
#menu {
margin:0 auto;
display: table;
width:90%;
}
#menu ul{display:table-row;}
#menu li {display:table-cell; padding:4px 0; border:1px solid #ccc; text-align:center;}
-->
</style>
</head>
<body>
<div id="menu">
<ul>
<li>Elemento 1</li>
<li>Elemento 2</li>
<li>Elemento 3</li>
<li>Elemento 4</li>
<li>Elemento 5</li>
<li>Elemento 6</li>
<li>Elemento 7</li>
</ul>
</div>
</body>
</html>
El problema es que no todos los navegadores entienden display table, la solución rápida... utilizar una tabla.
Espero que te sea de útil.
Un saludo.