Когда я пытаюсь обернуть весь Discourse, чтобы включить боковые панели разного цвета, возникает проблема со смещением наложений, например, карточки пользователя.
Карточка пользователя должна открываться прямо рядом с пользователем, на которого был нажат. Но на самом деле она смещена по горизонтали ровно на ширину моих боковых панелей. Поэтому вопрос: как реализовано позиционирование таких наложений и как можно избежать подобных смещений, при этом сохранив боковые панели?
Да, я сталкивался с этим при добавлении очень большого баннера во время разработки крупного плагина для клиента. В моём случае смещение было совершенно нелепым (оно выходило за пределы экрана!)
Возможно, есть более простое решение, но, как оказалось, это довольно сложная задача, требующая переопределения функции, например, для карточки пользователя:
Я использовал jQuery, чтобы определить, применять ли модификацию в зависимости от видимости баннера: на некоторых страницах у меня был большой баннер, на других — нет. Вы можете использовать аналогичную стратегию.
Честно говоря, ваш пример выглядит не так уж плохо — может, стоит оставить как есть?
Проблема в том, что по сути все оверлеи расположены неверно. Я не хочу переопределять все методы позиционирования для всех возможных оверлеев.
На примере это выглядит приемлемо, так как окно браузера не было развернуто на весь экран. Обычно боковые отступы больше, поэтому смещение ещё заметнее. Некоторые оверлеи почти вылезли за пределы экрана.
Да, это раздражает. Возможно, стоит ограничить настройки списком тем и по возможности не трогать просмотр тем, а также не делать слишком много «вариантов», чтобы упростить себе жизнь.