Уважаемые участники форума, попытался исправить баги указанные
Gvozd и
Riim.
Прошу протеcтить скрипт в ваших браузерах, может быть что то осталось.
Маленький лекбез о единицах ex, em и vertical-align.
Единицы em и ex являются относительными.
ex - высота буквы x
em - ширина буквы m, обычно принимается равной 2ex.
Что касается свойства vertical-align.
Оказывается для блочных элементов таких как div или table, свойство display которых объявлено как inline(а не block) базовая линия определяется по разному. Для table в более ранних версиях базовой линией считалась самая нижняя грань table, а сейчас к примеру для Opera и Firefox базовой принята нижняя граница первой строки таблицы.
Еще маленький секрет, для блочных элементов например table свойство vertical-align действует для содержимого, а для для таблицы со свойством display:inline это свойство vertical-align действует для самого объекта.