работает в Chrome, но не Firefox - JQuery - PullRequest
2 голосов
/ 09 мая 2011
 $('#carat_weight_right li').css('left', function(index, value) {
   if (value === '100%') {

        $(this).children('span').css({'margin-left': '-58px', 'text-align': 'right'});
        alert('hello');

    }
 });

, кажется, работает в Chrome, но не в Firefox, у кого-то есть подсказка ????

спасибо

1 Ответ

4 голосов
/ 10 мая 2011

Это забавный случай кросс-браузерной разницы в реализации.

Firefox возвращает used value для элемента computed style. Получается, что это фактическое значение в пикселях, используемое для визуализации элемента в браузере: Firefox видит это 100%, определяет в вашей компоновке, что на самом деле эквивалентно 326 пикселям, и возвращает 326 пикселей. Mozilla рассказывает об их реализации здесь.

Chrome, с другой стороны, возвращает specified value ("100%") для computed style.

Вид W3C гласит, что оба действительны: возврат указанного значения вполне допустим , если это можно сделать без необходимости выкладывания документа; возвращает используемое значение в порядке , если это значение можно определить только после завершения макета.

Так что же вам делать? Найдите другой способ сделать это. :-) Может быть, проверить, чтобы узнать, position().left вашего элемента больше или равно width()?

его родителя смещения
...