Раньше делал выпадающее меню на CSS на 3 уровня вложенности. Делал так:
<ul>
<li>Level 1</li>
<li>Level 1
<ul>
<li>Level 2</li>
<li>Level 2
<ul>
<li>Level 3</li>
</ul>
</li>
</ul>
</li>
</ul>
Затем в файле CSS задавал отступ всем пунктам меню. Чем выше уровень, тем дальше отступ.
Но сейчас пишу движок, в котором пользователь может сам создавать пункты меню и вкладывать одно в другое неограниченное количество раз. Как быть? Не задавать же вручную в CSS отступы для сразу 100 уровней вложенности. Может есть какой-то выход?