Столкнулся с такой штукой - открытая запятая в объектах и массивах весьма специфически себя ведет в IE8 по сравнению с IE7.
Вообще, открытая запятая это нормально если речь идет о всех остальных браузерах, если же говорим об IE, то он такие вещи страшно не любит. В версиях до седьмой включительно открытая запятая в конце описания массива или объекта была недопустимой и каралась синтаксической ошибкой:
var arr = [1,2,3,4,]
//синтаксическая ошибка в IE < 8
var obj = {'prop1':1,'prop2':1,}
//синтаксическая ошибка в IE < 8
В восьмом InternetExplorer синтаксической ошибки не возникает, зато возникает возникает дополнительный пустой элемент массива:
var arr = [1,2,3,4,]
//количество элементов массива оказывается равным 5,
//последний элемент оказывается равным undefined
var obj = {'prop1':1,'prop2':1,}
//ведет себя вполне адекватно, глюков не замечено.
Таким образом, при написании JavaScript сценариев нужно быть очень осторожным с запятыми, код, который, вроде бы, хорошо работвает при одних условиях, может наотрез отказаться работать в других.
В девятке пока не тестировал, но думаю, что там картина будет аналогична восьмерке, нужно будут проверить.
P.S. Кому-нибудь это техническое занудство вообще интересно? Может завести под него отдельный блог?
Оставить комментарий
Использование SVG очень удобно когда нужно создать легкую векторную графику, например, схемы проезда, простые чертежи, планы помещений и т.д. Но вот беда, чтобы отбразить SVG в InternetExplorer нужен специальный плагин.
Бред Нойберг (Brad Neuberg) создал библиотеку для рендеринга SVG на базе JavaScript и Abobe Flash - теперь можно использовать SVG во всех браузерах и не заставлять при этом пользователей InternetExplorer ставить всякие там плагины.
Ссылка на демо.
Оставить комментарий
Вслед за мобильным Firefox камеру стала поддерживать и Opera Mobile под Андроид.
В отличие от Firefox под Android поддержки на уровне тега file не предусмотрено, зато доступ к камере осуществляется через JavaScript. На сайте разработчика можно ознакомится с примерами работы с камерой под Оперой.
Кстати, немобильная версия браузера с камерой работать так и не умеет. А жаль...
Оставить комментарий
Иногда заказчики хотят чтобы на их сайте подвал всегда прилипал к низу. Даже когда страничка не заполнена. Не понимают, чудаки, что хотят станного.
Но, клиент всегда прав, а раз так, то нужно сделать его еще и счастливым, а значит, делаем подвал прилепляющийся к низу.
Для достижения этой цели прекрасно подходит техника со стопроцентным контейнером и отрицательным маржином. Ссылка на пример.
Просто и надежно.
Оставить комментарий
За много лет у меня выработалась привычка использовать только те приемы CSS верстки которые дают одинаковые результаты во всех браузерах. При этом уже различия браузеров меня не сильно и волнуют - я просто не использую приемы которые могут не работать в том или ином браузере. При этом, есть вещи которые ни в коем случае нельзя делать, чтобы не усложнять себе жизнь. Одна из таких запретных вещей - никогда нельзя указывать одновременно ширину элемента вместе с padding, margin или border. Если так сделать то разверзнуться небеса и боги CSS будут гневно метать в вас молнии а демоны Interhet Explorer сделают с вами чего похуже.
Чтобы наглядно показать почему так нельзя делать я создал файлик. В нем четыре раскрашенных примера:
1. div с шириной 300 пикселей;
2. div с шириной 300 пикселей и рамкой;
3. div с шириной 300 пикселей, рамкой и паддингом;
4. div с шириной 300 пикселей, рамкой, паддингом и маржином;
.gif)
Как мы видим, во всех браузерах (я использовал FF, Сhrome и IE, для простоты будем называть этот набор "всеми браузерами") картина примерно одинаковая. При этом обратите внимание - ширина 300 пикселей применяется к внутренней области HTML элемента. Т.е. если задать у элемента десятипиксельные бордер, паддинг и маржин то ширина элемента будет 360 пикслелей.
Такое поведение кажется совершенно нелогичным, но это факт - и в стандарте CSS это четко прописано. Как следствие - невозможно использовать ширину 100% вместе с паддингом, маржином или бордером - тогда элемент гарантированно вылезет за пределы своего владельца, что приведет к весьма непредсказуемым результатам.
Но это только одна сторона медали, теперь уберем из файла DOCTYPE. Как мы знаем html файлы без DOCTYPE в Internet Explorer обрабатыватются совершенно по-другому чем с оным. Это так называемый QuirckMode или еще его называют "режим совместимости".
Во всех браузерах картинка осталась такой же. Кроме Internet Explorer.

Как мы видим не только мне блоковая модель описанная в CSS не понравилась - разработчики IE тоже посчитали её нелогичной, поэтому в ширину элемента в IE входит бордер и паддинг.
Хотя режим совместимости в браузерах используется все реже и реже указанные особенности приходится учитывать при создании страничек на HTML.
Оставить комментарий
Приобрел новое доменное имя для моего маленького генератора анимированных гифок, теперь он будет располагаться по адресу: preloader.org.
Надеюсь в ближайшее время качественно обновить проект, добавить несколько новых типов прелоадеров, сделать новый внешний вид и добавить некоторые другие плюшки.
Оставить комментарий
Несколько дней назад, холодным зимним вечером телефон мне сказал что неплохо бы обновить Firefox. Причём, обновиться нужно непременно в ручном режиме, обычно, такое случается когда какие-то права в приложении Android были изменены. Предчувствия меня не обманули приложение в этот раз захотело права доступа к камере.
Теперь Firefox умеет закачивать картинки на сайт можно прямо с камеры. Работает это следующим образом: рядом с обычной кнопкой upload появляется кнопка capcture, при нажатие на которую появляется небольшое окно с картинкой с камеры. Для того, чтобы значок capture появился нужно у тега input[type=file] указать атрибут accept="image/png"
Откройте страничку в мобильном Firefox и убедитесь: http://maxistar.ru/kitchen/camera.html
Тестировалось на Motorolla Milestone 2 (Android 2.2)
Оставить комментарий
Amazon S3 представляют замечательный сервис для хранения данных в облаке. Но при всей своей замечательности файлы, хранимые в облаке, имеют доменное имя http://s3.amazon.com/[имя корзины]/путь/к/файлу.gif. Ежу понятно, такое имя совершенно некрасиво и хочется, чтобы оно было покрасивее. Разработчики пошли нам навстречу и сделали, чтобы к файлу можно было обращаться по имени http://[имя корзины].s3.amazon.com/путь/к/файлу.gif
Немного лучше, но не айс - всё равно, доменное имя некрасивое. Оказывается, для S3 можно указать собственное доменное имя третьего уровня. Для этого достаточно именем корзины выбрать желаемое доменное имя и создать CNAME запись со ссылкой на амазоновский сервер.
Алгоритм работы следующий:
1. Создаем корзину с именем домена для наших файлов (в моем случае это s3.o.itaccept.ru)
2. Создаем CNAME запись для домена третьего уровня ссылающуюся на s3.amazonaws.com
Если все получилось но после обновления DNS ваши файлы будут видны по трем адресам: http://s3.o.itaccept.ru.s3.amazonaws.com/folder2/banner.jpg, http://s3.amazonaws.com/s3.o.itaccept.ru/folder2/banner.jpg, http://s3.o.itaccept.ru/folder2/banner.jpg
Оставить комментарий
Всё больше и больше разработчики начинают использовать HTML5. При этом большинство браузеров до сих пор не умеют нормально поддерживать HTML5, и под большинством я подразумеваю Internet Explorer версии ниже чем девятка, который стоит у большей части интернет пользователей. При этом, у IE есть одна нехорошая особенность - если он встречает в разметке незнакомый тег - он просто его игнорирует. Старые версии Firefox ведут себя более терпимо к незнакомым элементам - незнакомые теги используются в отображении контента если для них задан display:[something], поэтому, и если для незнакомых элементов задать стили отображения в CSS то они будут отображены как надо. IE незнакомые теги просто проигнорирует.
Чтобы исправить такое поведение браузера Реми Шарп (Remy Sharp) сделал маленький скрипт заменяющий теги типа article, section и прочие обычными div'ами. Конечно, теги типа video работать не будут, но зато теперь можно использовать контекстные HTML теги типа section, footer, header и прочие.
Насколько это оправдано я пока не прочувствовал, но, как факт, HTML5 теперь вполне можно использовать для кроссбраузерной вёрстки. Хотя, лично для меня, преимущества HTML5 тегов пока выглядят спорными, но многим нравится, особенно тем кто заказывает музыку, а значит, придётся с этим считаться.
Оставить комментарий
Сел разбираться в Ruby - существо занятное, мне оно больше всего напоминает JavaScript, хотя синтаксис весьма безумен... Хотя... если разобраться так я могу и на JS написать так, что никто не поймет...
Оставить комментарий