OK, ich überblicke das noch nicht, vor allem, was die Höhe des ul und die Darstellung der li für eine Rolle spielen soll, aber ich versuche es mal.
Elemente nicht „übereinander“ legen - sondern *neben*einander.
Das Containerelement bekommt eine feste Breite, und overflow:hidden.
Die einzelnen „Items“ bekommen die gleiche feste Breite - und visibility:hidden und ein negatives margin-left entsprechend der Breite, um sie „auszublenden“.
Ich glaub Du hast es. An nebeneinander hatte ich auch schon gedacht, ich war nur nicht darauf gekommen, wie ich es die Höhe behalten lassen kann ohne es die Breite einnehmen zu lassen. Ich hatte einfach nicht daran gedacht, daß overflow:hidden auch nur in der Breite abschneidet, wenn man nur die Breite vorgibt.