Преобразование CSS3, влияющее на другие элементы с помощью chrome/safari

У меня проблема, когда мои преобразования css3 влияют на другие элементы на странице и даже вызывают их мерцание. Я видел другой пост об этом, но у них не было решения проблемы.

http://scosha.mybigcommerce.com/w107b/ при прокрутке навигации вы видите анимированный преобразование css3. Он отлично работает в Firefox без мерцания, но с Chrome и Safari эффект очень очевиден, вы видите его в пунктах раскрывающегося меню, а также в тексте нижнего колонтитула.


person mfdeath    schedule 10.10.2012    source источник
comment
Он отлично работает - Chrome 24 на Mac   -  person Miha Rekar    schedule 10.10.2012
comment
Я тестировал сафари / хром на нескольких компьютерах Mac, эффект был на самом деле хуже в сафари.   -  person mfdeath    schedule 11.10.2012
comment
ссылка мертва. но в любом случае, я испытываю то же самое на Chrome 24 на своем ПК.   -  person vsync    schedule 15.01.2013


Ответы (4)


Это известная проблема с отображением текста Macintosh в Chrome. 22 (и, видимо, Сафари). Ускорение графического процессора заставляет MacOS переключаться с субпиксельного на сглаживание в оттенках серого, что приводит к заметному уменьшению веса шрифта.

Обновлять:

Как отмечает OP ниже, исправление заключается в применении -webkit-font-smoothing: antialiased - который всегда применяет сглаживание в градациях серого. Если вы сделаете это, вы, вероятно, захотите увеличить вес шрифта во всем, так как сглаженный текст в оттенках серого выглядит заметно тоньше, чем субпиксельный.

Вы можете получить тот же эффект, применив свойства, которые заставляют контент всегда ускоряться с помощью графического процессора (например, back-face-visibility: hidden), но поскольку они не гарантируют ускорение графического процессора в будущих версиях браузера, просто укажите оттенки серого.

person Michael Mullany    schedule 11.10.2012
comment
Спасибо чувак нашел то что искал. Для тех из вас, кто попал сюда из гуглсферы: -webkit-font-smoothing: antialiased; вроде решил проблему. - person mfdeath; 11.10.2012
comment
Наверное стоит отметить, что настройка -webkit-font-smoothing:subpixel-antialiased; добьется того же, не заставляя шрифт казаться тоньше. - person Andrew Philpott; 24.05.2013
comment
comment
Спасибо @AndrewPhilpott !!! Я думал, что застряну на этом тонком тексте, пока не увидел ваш комментарий. - person Gavin; 18.08.2017

Рабочее решение для мерцающих элементов во время перехода в Chrome — настроить CSS для родительского узла:

-webkit-backface-visibility: hidden;

person zajc    schedule 06.11.2013
comment
Мне кажется, что это просто устанавливает рендеринг шрифта на сглаживание в оттенках серого. - person enyo; 07.01.2014
comment
Это работает для меня при добавлении к мерцающему элементу (а не к родителю). - person Fateh Khalsa; 04.02.2014

Решение для меня состояло в том, чтобы применить приведенный ниже css к родительскому элементу всех затронутых элементов.

-webkit-transform-style: preserve-3d;
-webkit-transform:translate3d(0,0,0);
person Bertrand    schedule 09.01.2015
comment
У меня тоже работает только с -webkit-transform:translate3d(0,0,0);. - person Mosh Feu; 22.02.2016

У меня была такая же проблема в Chrome, но не в Firefox.

Временное исправление состоит в том, чтобы добавить исправление web-kit и удалить переход:

-webkit-transition: none;
person Mike    schedule 13.10.2012