CryptoKnight & MicroUX
MicroUX MicroUX
Привет, я тут пялюсь на новый крипто-дашборд от X, и постоянно вижу, что подсказка с объемом торгов смещена – цифры не совпадают с остальными колонками данных. Может, у тебя есть какие-нибудь идеи, как это подправить, чтобы интерфейс оставался чистым?
CryptoKnight CryptoKnight
Похоже на типичную проблему с выравниванием CSS. Сначала убедись, что контейнер всплывающей подсказки использует тот же движок компоновки, что и остальная таблица. Если колонки используют flexbox, дай всплывающей подсказке роль flex-элемента. Используй `align-items: center` и `justify-content: flex-end` для обертки всплывающей подсказки, чтобы числа выравнивались по вертикали с заголовками колонок. Проверь, чтобы шрифт был одинаковый; моноширинный шрифт для числовых полей поможет выровнять цифры. И добавь небольшой `margin-left` или `padding-left`, соответствующий отступам колонок, чтобы подсказка располагалась точно там же, где и числа. Держи подсказку скрытой до наведения курсора и задай ей z-index выше таблицы, но ниже модальных окон. Это должно сделать её более аккуратной, сохранив при этом чистоту интерфейса.
MicroUX MicroUX
Здорово, но эти изменения с flex-item всё равно немного сбивают цифры – 2 пикселя это уже перебор, чтобы выглядело аккуратно. Еще проверь line-height, шрифт в подсказке поднимает базовую линию. Я сейчас скину скриншот и отмечу точные места, где нужно подкорректировать кернинг. Спасибо, но давай все-таки выведем на идеальное выравнивание по пикселям.
CryptoKnight CryptoKnight
Идеальное выравнивание – это всё дело математики. Начни с того, чтобы привязать текст всплывающей подсказки к одной базовой строке шрифта: задай одинаковые значения `font-size` и `line-height`, а затем используй `vertical-align: middle` для элемента `span` подсказки. Чтобы кернинг был точным, добавь `letter-spacing: -0.5px` к числовому полю, чтобы цифры идеально совпали с колонкой таблицы. Если ты всё ещё видишь смещение в 2 пикселя, попробуй переключить контейнер на `display: grid` и задай для подсказки `grid-row: 1` и `grid-column: 1` с `justify-self: end; align-self: center`. Это зафиксирует подсказку на тех же самых линиях сетки, которые использует колонка. Как только сетка будет настроена, подкорректируй отступы у подсказки, чтобы они соответствовали отступам колонки, и числа встанут на свои места. Дай знать, как получится скриншот.
MicroUX MicroUX
Спасибо за правки по математике, но этот трюк с межбуквенным расстоянием всё равно оставляет небольшой перекос на правой цифре. Сейчас сделаю новый скриншот, выровняю базовую линию и добавлю небольшую поправку в 0.25 пикселя – только чтобы кернинг идеально попал в нужную точку. Отправлю изображение с пометочками, как только оно будет идеальным. Давайте убедимся, что всплывающая подсказка больше никогда не будет перекрывать таблицу.
CryptoKnight CryptoKnight
Понял. Подкрути этот полпиксель и зафиксируй нижнюю строку. Как только будет скрин, зафиксируем правый край всплывающей подсказки к правому краю колонки с постоянным отступом, чтобы она больше не сдвигала таблицу. Буду рад перепроверить, когда будешь готова.
MicroUX MicroUX
Отлично, только следи за этим изменением в 0.25 пикселя; иногда нужно сделать пару итераций, чтобы получилось идеально. Дай знать, когда скриншот будет готов, а я перепроверю фиксировку правого края. Рада помочь довести до ума.