Подтвердить что ты не робот

Элементы рендеринга Firefox неправильно (проблема аппаратного ускорения)

Я построил этот мастер, используя только CSS. Но это проблема в новых версиях Firefox. В Google Chrome и IE 9+ работает отлично. Проблема заключается в псевдоэлементах :after и :before

Вот изображение ошибки:

enter image description here

И вот картина того, как она работает в Chrome и должна работать в Firefox:

enter image description here

Скрипт с кодом: http://jsfiddle.net/2jZmr/1/

Обновление: Я видел, что проблема связана не только с версией Firefox, протестированной на двух разных компьютерах с той же версией Firefox (v28), а с одной, а другая - нет. Я переустановил Firefox на своей машине, и проблема не устранена. Я также тестировал его на Firefox в Android 4.4.2, и он работал нормально.

Update2: Когда я открываю firefox в режиме безопасности, ошибка не возникает. Но просто отключите все плагины, надстройки и темы не исправляют ошибку.

Update3: Я нашел причину ошибки. Проблема заключается в ускорении аппаратного обеспечения Firefox.

Я выполняю следующие действия:

  • В верхней части окна Firefox нажмите кнопку "Firefox", а затем выберите "Параметры"
  • Выберите вкладку "Дополнительно" и вкладку "Общие".
  • Снимите флажок Использовать аппаратное ускорение, если оно доступно.
  • В верхней части окна Firefox нажмите кнопку Firefox, затем выберите Exit
  • Запустите Firefox так, как обычно.

Но возможно ли изменить css или выполнить некоторый код через javascript для запуска в firefox с включенным аппаратным ускорением?

Альтернатива, которая будет следовать, если нет, будет использовать изображения вместо CSS3.

Изменить: Мой Firefox теперь находится в версии 32.0, и проблема продолжается.

4b9b3361

Ответ 1

У меня нет проблемы с моим FF, но вы можете попытаться удвоить ':' перед псевдоэлементом:

Иногда вы увидите двойные двоеточия (::) вместо одного (:). Это часть CSS3 и попытка различать псевдоклассы и псевдоэлементы. Большинство браузеров поддерживают оба значения.

Примечание: выбор всегда начинается с двойных двоеточий (::). Вы можете использовать только один псевдоэлемент в селекторе. Он должен появиться после простых селекторов в инструкции.

src: https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements

Ответ 2

Обычный класс в CSS:

.myClass { 
    margin-top: 0px; 
} 

Используйте этот CSS-хак для Firefox:

@-moz-document url-prefix() { 
    .myClass { 
         margin-top: -9px; 
    }  
}

Ответ 3

Я проверил ваш код и попытался запустить его в firefox, но проблема такая же, как вы сказали, затем добавьте

.wizard-steps li.active: after {border-left: 24px solid # 555; дисплей: блок; }

и он работает в моем браузере. Не могли бы вы проверить его?

Ответ 4

Зачем использовать до и после, когда вы можете использовать:

display: block;
margin: 0;
padding: 0;
float: left;

и прекратите использовать относительную позицию по умолчанию в большинстве случаев, разрушая отзывчивый или css-дизайн.

Постарайтесь разместить свои элементы в одном размере ширины div:.box {width: 100%; display: block; float: left;}

и расположите остальные элементы внутри div.box с поплавком: left; блок отображения; margin или padding left и width in% и посмотреть, что произойдет;)