Все потоки
Поиск
Написать публикацию
Обновить
340.44

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

css fix для различных браузеров

Время на прочтение2 мин
Количество просмотров12K
Представьте себе абстрактный разговор абстрактного заказчика с абстрактным верстальщиком.

— У тебя бага в менюшке, все наверх съехало, — говорит заказчик.
— Посмотрел во всех браузерах, нету! Ты в каком смотришь? — говорит верстальщик.
— В фаерфоксе.
— Нормально все там, — говорит верстальщик, просмотрев сайт во всех версиях фаерфокса.
— Осталось бага. Если это важно, то я с мака.

Читать дальше →

Разница между разметкой и представлением

Время на прочтение4 мин
Количество просмотров1.4K
Прочитав комментарии к заметке Firefox 3: * {display: block } bug, понял что заметная часть читателей Хабра, в том числе серьёзно занимающиеся веб-разработкой, не совсем верно представляют себе что-то же такое HTML, и почему теги отображаются так, а не иначе.

Читать дальше →

Отговорки исполнителей на требования заказчиков сдать работу

Время на прочтение4 мин
Количество просмотров11K
Бывает так: закажет человек работу, денег даст. Может быть даже договор и задание в письменном виде будет. Однако время идет, а работы нет.

Что говорят и что надо говорить?
Читать дальше →

Страшная история работы в «ЮМИ-Студии» (СПб)

Время на прочтение2 мин
Количество просмотров2.2K
Поучительный рассказ для веб-дизайнеров, программистов, аниматоров, иллюстраторов других разработчиков



Я хочу вам рассказать о том, как меня штрафанули на 15 000 рублей за то, что я числился в штате, спустя пол года после неформального увольнения.

Без предистории никак

Читать дальше →

Страны, регионы, города

Время на прочтение1 мин
Количество просмотров121K
Карта мира
Хочу поделиться базой стран, регионов и городов на русском языке. Возможно, кому-то пригодиться в своих проектах. В базе 106 стран, 922 региона и 10969 городов!

Если кто не понял о чем речь, то вспомните, например, как на ВКонтакте указывается город: выбирается страна -> подгружается список регионов -> выбирается регион -> подгружается список городов

Читать дальше →

CSRF на vkontakte.ru

Время на прочтение1 мин
Количество просмотров7.9K
Обнаружил забавную атаку на сайт vkontakte.ru.
При переходе на сайт tvoydohod.com, если вы в этот же момент авторизованы на вконтакте, отработает следующий джаваскрипт:
<script>
function doit() {
  var html;
  html = '<img src=http://vkontakte.ru/profileEdit.php?page=contacts&subm=1&website=http://tvoydohod.com>';
  window.frames["frm"].document.body.innerHTML = html;
}
</script>
<iframe name="frm" onload="doit()" width="0" height="0"></iframe>

Как видно, будет запрошена картинка с адресом vkontakte.ru/profileEdit.php?page=contacts&subm=1&website=http://tvoydohod.com, броузер сделает запрос по этому УРЛу, и на анкете в vkontakte ваше поле «Веб-сайт» станет равным tvoydohod.com.
Затем в вашем профайле, ваш друг, который вам доверяет кликнет на этот линк, и изменит профайл себе… И т д.

Этот вид атак называется Cross Site Request Forgery. В вики описаны все противоядия и куча полезной инфы.

Сам по себе CSRF довольно скучен. Но в данном случае забавно то, что каждый заразившийся становится разносчиком CSRF-линка.

Отписал в тех-поддержку, где столкнулся с «Это не баг!», «Не кликайте по подозрительным ссылкам!» и прочим. Надеюсь пользователей они ценят и поправят.
А вам было интересно узнать о таком простом «вирусе», который живет целиком в соц-сети =)

Про резиновую верстку

Время на прочтение1 мин
Количество просмотров29K
Навеяно этим.

Для тех, кто, возможно, не знает как сделать так, чтоб всё было хорошо.
Сайт должен тянуться только до определённой величины, и сужаться тоже только до некоторого значения. Я обычно беру 1500 и 980 пикселей соответственно.

Как сделать? min-width и min-height.

#site {
  margin: 0 auto; /*это чтоб центрировать контент при превышении max-width*/
  min-width: 980px;
  max-width: 1500px;
}


Но ведь IE их не поодерживает. А expression слишком нагружает браузер… Спокойно, други! Я выведу вас к свету из тьмы!
Пишем далее.



А в ie.js помещаем

window.attachEvent('onload', mkwidth);
window.attachEvent('onresize', mkwidth);

var minwidth = document.getElementById("site").currentStyle['min-width'].replace('px', '');
var maxwidth = document.getElementById("site").currentStyle['max-width'].replace('px', '');
function mkwidth(){
    document.getElementById("site").style.width = document.documentElement.clientWidth < minwidth ? minwidth+"px" : (document.documentElement.clientWidth > maxwidth ? maxwidth+"px" : "100%");
};


В чём особенная вкусность приведённого метода? А в том, что минимальное и максимальное значение нужно задавать только в одном месте, ну и вообще.

Пользуйтесь, короче, на здоровье!

Что нужно, чтобы в России получить 569000 долларов за сайт?

Время на прочтение1 мин
Количество просмотров866
Думаете, нужно уметь проектировать взаимодействие с пользователем? Или грамотно обрабатывать картинки? Или блистать оригинальными идеями? Может, верстать по стандартам, семантически, валидно и кроссбраузерно? Оптимизировать код под серьезные нагрузки? Управлять контентом?
Читать дальше →

Давайте убьем IE6

Время на прочтение1 мин
Количество просмотров1.8K
Internet Explorer 6.0 был представлен публике 27 августа 2001 года. Ни для кого не секрет, что он содержит большое количество ошибок рендеринга, плохо поддерживает стандарты, плох с точки зрения безопасности и удобства.
Читать дальше →
12 ...
26

Вклад авторов