Каскадные Таблицы Стилей

индекс
323,95

Простой способ провести CSS-debug

Болтаясь сегодня по интернету в поисках чего-нибудь интересненького, наткнулся на вот такой простой (и столь же замечательный в своей простоте) способ отыскать «неполадку» в верстке.

CSS

* { outline: 2px dotted red; }
* * { outline: 2px dotted green; }
* * * { outline: 2px dotted orange; }
* * * * { outline: 2px dotted blue; }
* * * * * { outline: 1px solid red; }
* * * * * * { outline: 1px solid green; }
* * * * * * * { outline: 1px solid orange; }
* * * * * * * * { outline: 1px solid blue; }
Цвет, тип и размер обводки каждый может выбрать по вкусу.

Поддержка браузерами:


FirefoxOperaGoogle ChromeSafari

К сожалению, в браузерах от Microsoft версий 6 и 7 (в 8-й — все окей) свойство outline не поддерживается. Для них, пожалуй, придется использовать border.
+89
21 июля 2009, 14:25
170

комментарии (56)

0
Bytexpert #
Респект! Воистину, все гениальное — просто!
+27
SMiX #
А вот ещё один безумно удобный инструмент
Добавляем в закладки то, что скрывается под кнопкой Yaml debug и наслаждаемся результатом перехода по ней на разрабатываемой странице.
0
rondew #
о боже, это просто музыка!
+5
trak #
А можно скриншот приложить?
+2
piumosso #
К сожалению, border (в отличие от outline) имеет физическую толщину, и его употребление приведет к проблемам вёрстки, то есть попытка найти одни проблемы может привести к возникновению других.
А так — хороший способ для Opera и Webkit
–9
Tvarb #
Что могу сказать если такая вложенность при верстке, значит что то там уже не так :)
А так способ полезный
+3
nooze #
Ну до конца может и да, но вложеность 5-6 вполне обычная
+2
Xaljava #
Вы просто со сложными дизайнами не сталкивались, а так же с оптимизацией верстки. Уровень вложенности 5-6 норма.
+1
Tvarb #
Как раз наоборот оптимизация верстки и предполагает не большую вложенность

И скриптом по DOM в таком случае легче бегать.
Вложенность 8 это ужас.
+5
avenu #
Проблема в том, что баги обычно и приходится искать в IE :)
+1
Kirk #
Попробовал, ничего особенного.
+6
DileSoft #
0
xalexx #
Много визуального шума. Мне кажется проще добавлять outline только к элементу который нужно проверить, который потенциально вызывает проблемы.
+13
elisium #
Для элемента который нужно проверить ничего лучше FireBug выдумывать не нужно.
–1
Xaljava #
Да по ходу и невозможно :))
0
xalexx #
Согласен, но если есть firebug тогда и вышеописанный способ не нужен.
+1
yoyurec #
+ плагин webdeveloper
+1
SowingSadness #
Свет клином на фаербаге не сошелся…
Dragonfly и WebDeveloperToolbar ни чем не хуже, а иногда и лучше.
+22
zorro1211 #
Ну если речь об извращениях, то… Старый известный мне метод — если не знаешь в каком правил(е/ах) подвох, то удали половину css и посмотри осталась ли проблема, если осталась, значит проблема в другой половине. Ну и далее делением на 2. А вообще firebug рулит. Да и в других браузерах есть средства отладок.
+4
magicstream #
бинарный поиск и тут спасает однако :)
–1
Zuzle #
Отличный метод, спасибо! =) Нужно будет подумать о яваскрипт альтернативе в IE
0
lashtal #
Если додумать концепцию и допилить с пом. js — можно раскрасить своим цветом каждый элемент (div, p, input, и т.д.) и отображать уровень вложенности яркостью цвета линии и/или типом линии (dotted, dashed и т.д.).
Я всегда пользуюсь примитивным * {outline: 1px solid red;} (или бордер для IE).
Кстати хороший способ протестировать качество разметки: оно хорошее, если разметка не разваливается при
* {border: 1px solid red;}
+1
zzeus #
С этими браузерами и так проблем не особо много. Основная — с IE6.
+8
Theo_from_Sed #
Для FF есть WebDeveloper, в нём Outline->…
И там на любой вкус. И block level elements, и frames, deprecated, tables etc.
0
yoyurec #
+ «Information -> Display topographic information» для вложенности
0
jcd #
Если в IETester никак не получается использовать Developer Toolbar, то в Internet Explorer VPC Image уже все включено.
НЛО прилетело и опубликовало эту надпись здесь
0
agl666 #
на самом деле :)
+20
Irokez #
а может лучше?
*:hover { outline: 2px dotted red; }
* *:hover { outline: 2px dotted green; }
* * *:hover { outline: 2px dotted orange; }
* * * *:hover { outline: 2px dotted blue; }
* * * * *:hover { outline: 1px solid red; }
* * * * * *:hover { outline: 1px solid green; }
* * * * * * *:hover { outline: 1px solid orange; }
* * * * * * * *:hover { outline: 1px solid blue; }
–15
Grundiss #
и чем лучше?
:hover можно прицепить только к ссылкам
0
yanajy #
для IE только вроде
+1
deniamnet #
в браузерах, отличных от IE, hover срабатывает при наведении мыши почти для любого элемента
попробуйте проверить на input, например (бэкграунд или бордер)
НЛО прилетело и опубликовало эту надпись здесь
+2
switchON #
Да ладно!
+1
fatal #
Проснулись только? :)
Начиная с IE 7 hover работает почти на любом элементе.
–1
b_r #
почти?
0
r3code #
Отличная идея, в Firebug такого режима еще нет.
–1
Alinaki #
Гениально! Черт :)
0
Doomsday_nxt #
в ИЕ8 есть удобный инструмент в средствах разработчика, выбираем пункт меню «Как векторные» и далее по желанию… Можно выделить любой тип элементов… Можно даже по типу размещения обозначить…
0
persei #
А главное — такие инструменты есть еще как минимум в сафари и ff
0
assTeT #
Для ie можно использовать не border, а background, например.
0
yanajy #
а если сделать, например, border: 2px; margin: -2px — не пойдёт?
0
Slasyz #
Зачем, если можно просто outline:1px?
0
yanajy #
просто хочется сделать кроссбраузерно
0
homm #
А если уже есть border и margin?
0
yanajy #
да, тогда плохо.
–8
adrian_lopez #
кккк
–6
n0mini #
Отвратительно. Лучше юзать developer bar'ы. А для IE бордер вообще гениально, так как обрамить элемент обводкой, расширяя тем самым элемент и развалить всю верстку — это круто о_О.

frujo, бросьте это решение в унитаз. Мало того, что оно мало чем полезно, не кроссбраузерно и может перекрывать родные аутлайны, так оно еще и в глазах мельтишит.

По поводу developer bar'ов: он есть или можно подключить в ie, opera9+, ff, safari3+. В chrome поведение как в сафари, так что инструменты разработчиков есть во всех популярных браузерах. Итак, зачем нужен этот CSS?
0
yanajy #
Может, мне просто нужно что-то исправить с домашнего компа, а не с рабочего. Мне устанавливать плагины на ВСЕ браузеры на компе, который для работы я использую только в КРАЙНИХ случаях (~1раз в месяц)?

(частный случай, но можно ещё десяток привести)
0
n0mini #
И иметь обкусанный функционал, который обводит блоки, превращая какую-нибудь промку в кашу. Порассуждайте в сторону portable софта ;)
0
anmiles #
3.5 Firefox с таким «хаком» окрасился сверху донизу, включая его собственные кнопки, панели, главное меню и прочие контролы.
Отвратное зрелище с практической точки зрения. Хотя цветовая мешанина кому-то может и понравится :). Тем не менее, Web Developer имеет намного более практичный функционал всевозможного аутлайна.
–5
DileSoft #
Bookmarklet:

javascript:document.getElementsByName('Head')[0].innerHTML=document.getElementsByName('Head')[0].innerHTML+'<style>\n* { outline: 2px dotted red; }\n* * { outline: 2px dotted green; }\n* * * { outline: 2px dotted orange; }\n* * * * { outline: 2px dotted blue; }\n* * * * * { outline: 1px solid red; }\n* * * * * * { outline: 1px solid green; }\n* * * * * * * { outline: 1px solid orange; }\n* * * * * * * * { outline: 1px solid blue; }\n</style>';
–4
DileSoft #
Виноват, вот так:

javascript:document.body.innerHTML=document.body.innerHTML+'<style>\n* { outline: 2px dotted red; }\n* * { outline: 2px dotted green; }\n* * * { outline: 2px dotted orange; }\n* * * * { outline: 2px dotted blue; }\n* * * * * { outline: 1px solid red; }\n* * * * * * { outline: 1px solid green; }\n* * * * * * * { outline: 1px solid orange; }\n* * * * * * * * { outline: 1px solid blue; }\n</style>';
–1
DileSoft #
Впрочем, тоже не так. ну вы поняли :)
0
serebro #
Я для отладки в IE использую FireBug Lite. Он подключается как внешний JS. Очень удобно.
0
Paxa #
В опере есть замечательная фича — «видимый контур элементов» Делает тоже самое, но не нужно лесть в css, и другие классные фичи там есть (это в кнопке «режим автора»)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.