Как найти баг в вёрстке
08 Jan, 2008Как часто вы тратите часы чтобы понять почему же эта эта вредная навигация сползла? Этот способ позволяет найти причину практически не думая за 5 минут. Наверное почти все пользовались этим методом поиска багов в вёрстке.
Зачем
Очень много времени в верстке уходит на решение багов, и поиски их причин. Если вы чувствуете, что можете потратить более 20 минут на поиски причины — лучше смело использовать этот метод, он редко отнимает более 5-10 минут. Впрочем, менее 5 минут, он тоже редко отнимает. И это его единственный недостаток.Когда
Когда "сползла колонка", или "это гадское меню опять отображается не так как должно". Или еще тысячи глюков, которые вы наблюдаете и не можете понять, что заставляет сайт отображаться именно так. И какая строка в коде это делает.Идея
Метод иногда называют методом дихотомии, известна так же классическая задача про поимку льва в пустыне, а иногда его еще называют методом деления отрезка пополам.Принцип очень простой, чтобы найти, например, точку на отрезке:
- Делим отрезок пополам, определяем в какой половине содержится наша точка
- Повторяем процедуру для полученной половины отрезка с точкой
А так это выглядит в задаче про поимку льва в пустыне:
Делим забором пустыню пополам. Затем та часть, в которой остался лев, снова перегораживается посередине, и так далее — до тех пор, пока лев не окажется в тесном загоне.
Алгоритм в приложении к вёрстке мало отличается от классики. Львом будет кусочек кода делающий глюк. Пустыней — весь код.
Суперпупералгоритм
- Удаляем половину или просто большой кусок HTML (CSS)
- Если глюк остался виден, продолжаем процедуру для оставшегося кода
- Если глюк исчез, возвращаем удалённый код и повторяем процедуру для него (удалив другую половину)
Таким образом, в конце у вас останется несколько строк CSS и только те блоки в HTML, которые составляют глюк. При таком количестве кода вам будет трудно не найти баг или опечатку.
Иногда проще начинать с CSS, но суть остаётся той же самой. Удаляем код, до тех пор пока не найдём место в нем вызывающее баг.
В то же время, обращаться за помощью на форумы лучше именно с этой "подчищенной" страничкой, без кучи лишнего кода, в котором всем разбираться лень.
Проделывать это все рекомендуется с копией кода. Чтобы можно было смело удалять и не беспокоиться.
В результате мы точно определяем строку кода, или кусочек HTML являющийся триггером для бага, а это уже полдела.
В конце
Даже странно почему об этом способе так мало написано(может потому что это слишком просто?). Надеюсь кому-то он поможет, меня не раз выручал. Вдобавок, такие действия помогают начинающим лучше разобраться и прочувствовать как работает этот CSS. =) А при поиске глюка в чужом коде — это практически единственный путь.Кстати, только с помощью этой методики удалось обнаружить странный баг с кодировкой CSS файлов.
Конечно же рад услышать Ваши способы решения своих проблем!
36 комментариев к “Как найти баг в вёрстке”