ОК, несколько замечаний:
Направление текста (rtl / ltr) не имеет значения.Если вы удалите этот стиль, ситуация будет такой же.
Если вы удалите красный узел, ситуация будет незначительно отличаться, с синим прямоугольником, расширяющимся еще дальше от области просмотра справа.
Вот как я прочитал ситуацию:
#top_container
содержит только один элемент потока: #red
#top_container
является float: right.Поэтому он расположен у правого края окна просмотра, что позволяет ширину, требуемую для элемента потока (#red
). #blue
абсолютно позиционирована относительно #top_container, но не имеет позиционирования,Поэтому он выравнивается по левому краю с красной рамкой и занимает ширину 200 пикселей.
Все это именно то, что я ожидал.Я не могу объяснить, почему другие браузеры делают это по-другому.Почему они выравнивают #blue
по правому краю #red
?Я не понимаю, почему так должно быть.
В любом случае, вы можете приблизиться к тому, что хотите, добавив right:0
к вашему #blue
стилю.