Юзерпики на моём сайте

У меня на сайте, в комментариях широко используются юзерпики. Я уже неоднократно писал как я их показываю. Естественно, каждый сервис выдаёт юзерпики своего размера, у меня на сайте принят размер 41×41 пикселей. Ранее я ставил ширину и высоту картинки в 41 пиксель, многие неквадратные картинки искажались. Теперь этого не происходит, благодаря небольшому изменению CSS-файла:
.avatar { max-width: 41px; max-heigth; 41px }
.avatar, x\:* { max-width: auto; max-height: auto; zoom: expression(41 / Math.max(this.width, this.height)) }
Для всех браузеров, кроме IE выставлены максимальная ширина и высота картинки, в IE используется нестандартное свойство zoom, позволяющее масштабировать элемент.
2 июля 2008 12:26

lusever.ru (lusever.ru)
2 июля 2008, 14:38

zoom: expression(runtimeStyle.zoom = (41 / Math.max(this.width, this.height))) },
http://lusever.ru/proceedings/thin_css/index.html :)

bolk (bolknote.ru)
2 июля 2008, 18:15, ответ предназначен lusever.ru:

Так, я не понял почему именно runtimeStyle.

lusever.ru (lusever.ru)
2 июля 2008, 19:49, ответ предназначен bolk (bolknote.ru):

Можно style, правило перебьется, и больше вычисляться не должно. Забыл, что приоритетнее.

bolk (bolknote.ru)
2 июля 2008, 21:14, ответ предназначен lusever.ru:

Зачем вообще присваивание style или runtimeStyle?

anton3.livejournal.com (anton3.livejournal.com)
3 июля 2008, 11:38

Достаточно было ограничить по высоте, юзерпиков с большей шириной очень мало.

bolk (bolknote.ru)
3 июля 2008, 11:50, ответ предназначен anton3.livejournal.com:

Несколько штук используют пользователи у меня на сайте.

lusever.ru (lusever.ru)
4 июля 2008, 18:18, ответ предназначен bolk (bolknote.ru):

Поставь alert() внутри expression'a :)
expression, выполняется при каждом движении мышки (и некоторых других несущественных действиях). Это здорово напрягает процессор, т.е. если аватарок будет много, то тормозить будет сильно. Конечно зависит от мощности компа, но прочувствовать.

bolk (bolknote.ru)
4 июля 2008, 23:48, ответ предназначен lusever.ru:

Не могу проверить — дома только IE8b1, там всё иначе. Если присвоить runtimeStyle, то alert будет выполняться только один раз? Почему?

lusever.ru (lusever.ru)
9 июля 2008, 11:32, ответ предназначен bolk (bolknote.ru):

Потому что мы переопределили свойство, для конкретного нода. Если раньше zoom содержал expression, то теперь только числовое значение.
Я не пробовал IE8, разве там отменили expression?

bolk (bolknote.ru)
10 июля 2008, 12:04, ответ предназначен lusever.ru:

В IE8 пока вообще мало что работает нормально, это первая бета с качеством первой альфы.

Попробовал runtimeStyle, точно так же — alert срабатывает постоянно. Я до сих пор не понимаю с чего вдруг expression должен перестать выполняться. Как только браузер решает, что ему надо сделать redraw, он запрашивает свойства объекта и expression выполняется. Для IE это нормально.

lusever.ru (lusever.ru)
22 июля 2008, 15:58, ответ предназначен bolk (bolknote.ru):

Покажи плз код, где алерт срабатывает постоянно.

bolk (bolknote.ru)
22 июля 2008, 20:45, ответ предназначен lusever.ru:

Да просто этот кусок с void(alert('1'))

lusever.ru (lusever.ru)
31 июля 2008, 21:44, ответ предназначен bolk (bolknote.ru):

А полностью, чтобы со словом expression?

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)