Дочерние переходы CSS3 не работают в FireFox

У меня есть элемент h1 и его дочерний элемент, анимированный с помощью переходов CSS3. Все хорошо работает в Chrome и даже в IE 10+, но в Firefox эффекты перехода видны только в родительском элементе, а не в дочернем.

Код такой

<h1>G<span>eneric</span> D<span>ata</span> B<span>inder</span></h1>

Где элемент h1 и элемент span имеют свои собственные переходы как таковые:

h1{
    transition: all 800ms;
    -moz-transition: all 800ms;
    -webkit-transition: all 800ms;
    -ms-transition: all 800ms;
    -o-transition: all 800ms;
    transition-property: line-height,width,font-size;
    -moz-transition-property: line-height,width,font-size;
    -ms-transition-property: line-height,width,font-size;
    white-space: nowrap;
}

h1 span{
    display:inline-block;
    max-width:500px;
    transition: all 800ms;
    -moz-transition: all 800ms;
    -webkit-transition: all 800ms;
    -ms-transition: all 800ms;
    -o-transition: all 800ms;
    transition-property: opacity,max-width;
    -moz-transition-property: opacity,max-width;
    -ms-transition-property: opacity,max-width;
}

Эффект можно увидеть здесь: Универсальный сайт связывания данных

Является ли проблема здесь ошибкой или предостережением в механизме рендеринга FireFox, или я упускаю что-то ключевое, так что я совершаю глупую ошибку?


person John Louderback    schedule 02.04.2014    source источник
comment
Я только что загрузил бета-версию FF 29, но все еще вижу неправильное поведение. Вместо того, чтобы буквы плавно исчезали, они мгновенно исчезают там, где плавно переходит только элемент H1.   -  person John Louderback    schedule 02.04.2014
comment
Можете ли вы предоставить JSFiddle?   -  person aloisdg    schedule 02.04.2014
comment
CSS3 звучит и все такое, но правда в том, что он еще не готов ... и производительность тоже невелика. Я бы порекомендовал проверить инструмент анимации GSAP и посмотреть на производительность анимации CSS и JS. greensock.com/js/speed.html   -  person Oneezy    schedule 02.04.2014
comment
Есть ли причина, по которой вы указываете all для всех своих переходов, а затем выборочно переопределяете transition-property только для нескольких префиксов? Кроме того, -ms-transition больше не используется, поэтому его можно удалить без каких-либо реальных последствий.   -  person BoltClock    schedule 04.04.2014


Ответы (1)


Мне это кажется https://bugzilla.mozilla.org/show_bug.cgi?id=625289: изменение значения position (на/с fixed) в родительском блоке вызывает реконструкцию, что приводит к потере информации о старом стиле для дочерних элементов, которые, следовательно, не переходят.

person Boris Zbarsky    schedule 02.04.2014
comment
Большое спасибо! Ты сделал это! Я использовал грязный хак для FireFox. В контексте этой проблемы, начиная с фиксированной позиции по сравнению с абсолютной, это незначительная разница, но я полагаю, что если я все еще могу сделать это по-своему в других браузерах, я сделаю это. @-moz-document url-prefix() { h1{ position:fixed; } } - person John Louderback; 02.04.2014