Яндекс.Субботник в Киеве — вёрстка, API и другое…

yaua
Яндекс приглашает в гости всех, кому интересно поговорить о HTML-вёрстке, CSS, API и обсудить эти темы за чашкой кофе. Пройдёт субботник 25 апреля.

Субботники ориентированы на разработчиков и проходят в комфортной, неформальной обстановке офиса Яндекса. Участие в Cубботниках бесплатное. Первое мероприятие из цикла Я.Субботник — «Верстка, API и другое…» прошло 31 января 2009 года.

Отличная идея делиться таким уникальным опытом веб-разработок! К сожалению, все места уже заняты, так что остаётся только читать отзывы и статьи, листать презентации и смотреть видео о прошедшем московском:

PS: уже подсел на IntelliJIDEA!
Вёрстка в IntelliJIDEA. Часть №1
Вёрстка в IntelliJIDEA. Часть №2

Резиновые кнопки с помощью button

Итак… кнопочки.. небольшое исследование… у кого есть идеи – в комменты!!!

Есть много статей, описывающие техники стилизирования кнопок. Причём оформлять можно как ссылки, так и 2 вида кнопок: input type=»image» и button. Я предпочитаю использовать последнюю.

Многие пишут об удобности этого тега и пророчат великое будущее…

Трудно подобрать себе универсальную технику. В каждой есть свои минусы. Но будем стремиться к идеалу – меньше картинок, меньше лишних пустых тегов в коде!

А.. ещё… по поводу hover – видимо не везде можно избежать использования javascript :( и зум… тоже сильно не поиграешься, так увеличение на 1-2 размера шрифта ещё прокатит, а дальше болт :(

Ознакомлю с видами оформления:

1) «sliding doors» – развижные двери двумя картинками + span.
Хотелось бы отметить сложность использования в Опере (в ИЕ6-7 тоже, но можно пофиксить с помощью CSS) – при клике на кнопке её контент сдвигается и кнопка кажется «поломанной» :(

2) Двери, только одной картинкой + span. Идея ничего так, вот только снова для ссылок и input сделали. Про button забыли :(
Не проблема – подшаманим сами! Или проблема? Фак! :)
Меняем немного код и всё работает вроде :)

Под ИЕ пофиксили нажатие кнопки, а Опера всё ещё глючит. Делаем вывод, что картинки нужно убирать с button и применять ниже, например добавив ещё один span. Этот метод последнее время и использую…

Продолжение следует!

Настраиваем Thickbox

Thickbox – простой в использовании, универсальный, с широкими возможностями плагин для jQuery из семейства «lightbox». С его помощью можно сделать почти всё :) Кроме callback’а по закрытии окна. Пусть с минимальными возможностями… нету и всё! А иногда так необходимо обновить родительское окно по закрытии popup.

В четвёртый раз перерывая официальный форум нашёл-таки полезный совет. Даже целую статью о модификациях thickbox’а, в которой описаны открытие вторичных окон, вызов окна без добавления к ссылке класса, вызов по закрытию попапа любой родительскогй функции…. Вкуснотища!!!

Как Internet Explorer поддерживает CSS?

«Никак», – быстрый ответ. А для особо любопытных – CSS Compatibility and Internet Explorer, объёмный документ из MSDN с громадным количеством сводных таблиц о поддерке IE5.0-IE8.0 тех или иных CSS селекторов, псевдоклассов…

IETester – зоопарк браузеров для вебразработчиков!

Вёрстка сайтов не такое уж и сложное дело… если бы не одно НО, которое называется Internet Explorer :)

Проверять как выглядит сайт под разными версиями этого «браузера» довольно сложно. Кто пользуется веб-сервисами, кто standalone версиями, а кто и просто бегает к соседу с просьбой «а ну-ка открой свой седьмой»…знакомо?

ietester

С лёгкой подачи WebWorkerDaily представляю вам IETester – бесплатная утилита, которая облегчит нам жизнь. С помощью этого браузера вы сможете просматривать сайт в IE5.5, IE6, IE7 и IE8 beta1 !!!

UPD:
Программа хороша! но ещё немного сыроватая, о чем ниже…
В процессе тестов оказалось ей нужен 7-й IE для рендеринга страницы во всех заявленных версиях. На свой страх и риск таки поставил его (хотя до этого использовал IE6+PortableIE7). Даже рад этому – всё-таки седьмая версия сейчас «основная».
Пока что полёт нормальный, но случайным образом вылетает браузер – и самое интересное не понятно как лечить :). Практикую «вылетело-запустил заново» – и так до победы. Обычно хватает пару раз. Закономерности не заметил, но на оф.форуме пишут, что крашится при открытии IE6 в первой закладке… В принципе я доволен, а надежда на новые неглючные версии добавляет оптимизма :)

UPD2: Танцы с бубном показали, что открытие закладок в порядке убывания версий (8,7,6,5) добавляет стабильности :)
Во время недавней вёрстки интернет-магазина (а вы сами понимаете они не просты) особых нареканий не было, браузеры работали гладко. Жаль только отсутствует меню «открыть» – адрес подопытной странички приходится вставлять из буфера.
Из новенького – работают «conditional comments» для IE (хотя некоторые сомневались).

Меняем рабочую папку в Symfony

Довелось работать с симфонией… мутная вещь, однако!
Есть такая нехорошая в ней фишка, как использование папки «web» для приложения :(. На «денвере» запарился с виртуальными хостами, но всё поднял кое как…

Другая проблема появилась, когда я захотел выложить проект – на хостинге ведь «public_html» папка у апача! Хорошо, если это ваш личный сервер и можно подправить конфиг апача или через админпанель что-то поколдовать (кстати так и не нашёл как это сделать в direcadmin). А что если нет доступа?

Решение было найдено на блоге Digital Base и заключается в добавлении кода в конец конфигурационного файла вашего приложения (config.php):

1
2
3
4
5
6
      $sf_root_dir = sfConfig::get('sf_root_dir');
      sfConfig::add(array(
        'sf_web_dir_name' => $sf_web_dir_name = 'public_html',
        'sf_web_dir'      => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name,
        'sf_upload_dir'   => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name.DIRECTORY_SEPARATOR.sfConfig::get('sf_upload_dir_name'),
      ));

Естественно остальные папки фреймворка должны лежать вне папки «public_html» !

Facebox IE6 png transparency fix!

С пылу с жару! Как я рад, что пофиксил немного «Facebox» (особенно учитывая мои слабые познания js)!!!
Суть проблемы проста – .png рамки непрозрачны в ИЕ :(
Для этого перепробовал кучу решений и остановился на Ifixpng, плагине для jQuery, который фиксит прозрачность. Качаем, подключаем скрипт и инициализируем его на страничке:

1
2
3
4
jQuery().ready(function(){
        $('a[rel*=facebox]').facebox();
        $('#facebox td').ifixpng();   < ------
});

Ура, уголки стали прозрачными! Но у нас появилась новая проблема – ifixpng не поддерживает CSS свойство «background-repeat», из-за чего некорректно ображаются рамки. Так что напильничком подрихтовываем стили facebox’а (facebox.css):

1
2
3
4
5
#facebox .b {
  background: #555;
  opacity: .70;
  filter: alpha(opacity=70); /* for IE6 support */
}

Теперь нам совсем не нужен файл "b.png" и с моего полупинка фейсбокс работает как и задумывал автор (которому, кстати, огромный респект)! Удачи!