Material-ui: [Разделитель] Несоответствующая высота на масштабированном экране

Созданный на 10 мар. 2019  ·  3Комментарии  ·  Источник: mui-org/material-ui

Поведение разделителя в моей песочнице кода странное. Иногда они появляются толще, а иногда они даже не появляются. Это можно воспроизвести с помощью cmd +/- на Mac, чтобы настроить масштаб в браузере. Примеры см. В прилагаемых скриншотах.

Ожидаемое поведение 🤔

Текущее поведение 😯

Шаги по воспроизведению 🕹

https://codesandbox.io/s/mmnoyvq9oy

Контекст 🔦

Просто пытаюсь заставить мои диалоги работать в нескольких разных контекстах

Ваше окружение 🌎

| Технология | Версия |
| -------------- | --------- |
| Материал-UI | v3.9.1 |
| React | 16.8.4 |
| Браузер | Хром |

Screen Shot 2019-03-09 at 7 17 40 PM
Screen Shot 2019-03-09 at 7 17 49 PM

bug 🐛 Divider

Самый полезный комментарий

Попробуйте увеличить масштаб браузера до 90 или 100 процентов. Магия

Все 3 Комментарий

@urirahimi Вы заставляете Chrome выполнять вычисление субпикселей, и обычно это ведет себя странно.
Вы можете решить проблему с помощью:

const theme = createMuiTheme({
  overrides: {
    MuiDivider: {
      root: {
        marginTop: 1,
      },
    },
  ),
});

Я попытался изменить реализацию с цвета фона на верхнюю границу, это не помогает.
https://stackoverflow.com/questions/12547580/borders-disappear-in-chrome-when-i-zoom-in

Попробуйте увеличить масштаб браузера до 90 или 100 процентов. Магия

Предостережение: я все еще использую версию 3.9.2 и тестировал только Firefox и Chrome.

Использование thin в качестве толщины границы устранило проблему для меня. Это позволяет браузеру определять толщину. В Chrome thin выбирается равным 1px / zoom . - это означает, что он всегда будет оставаться ровно 1 реальным пикселем независимо от уровня масштабирования. Firefox делает то же самое при уменьшении масштаба, но сделает границу 2 реальных пикселя, когда масштаб> = 200%, 3 реальных пикселя, когда масштаб> = 300% и т. Д. К сожалению, они не ведут себя одинаково, но, по крайней мере, оба вели себя лучше с thin чем с 1px .

const theme = createMuiTheme({
  overrides: {
    MuiDivider: {
      root: {
        // Dividers not consistent when zooming.
        // https://github.com/mui-org/material-ui/issues/14815
        borderTop: 'thin solid rgba(0, 0, 0, 0.12)', //this color should be theme.palette.divider if that is set
        backgroundColor: undefined,
        height: undefined,
      },
    },
  ),
});
Была ли эта страница полезной?
0 / 5 - 0 рейтинги