Пользователь
0,2
рейтинг
27 октября 2008 в 14:17

Разработка → Сборник хаков

CSS*
В этом посте я постарался собрать все известные мне хаки для css. Многие могут усомниться в их надобности для нормальных современных браузеров, потому как большинство хаков всегда применялись только для IE, но этот пост скорее для любознательных :), в верстке хаки вообще лучше не использовать. Но так или иначе, раз они есть, грех о них не знать.

В отличие от многих хаков для той же Opera, которые также будут обработаны и Safari, я немного изменил код и Opera 9.2, Opera 9.5 и Safari 3 увидят каждый свой css.

Я создал css файлик, который в теле документа будет отображать или скрывать div'ы, соответствующие браузеру, таким образом можно легко отследить, все ли ок с хаком.

.browser { position: absolute; top: 0px; right: 0px; z-index: 2; padding: 10px }
.browser div { display: none }

/* Все вменяемые браузеры */

*:lang(ru) #lightMOD { display: block } /* Хитрый селектор — все современные браузеры — не IE6 или IE7 */
html>/**/body #lightMOD { display: block } /* Вживленный комментарий — все современные браузеры — не IE6 или IE7 */

/* IE */

* html #lightIE6 { display: block } /* Лояльность разбора — будет работать в IE6 и в режиме quirks в IE7 */
*+html #lightIE7 { display: block }

body div.stopper {
   width: 100%;
   max-width: 1100px;
   min-width: 900px;
   *width: expression(document.body.clientWidth > 1100? «1100px»: document.body.clientWidth < 900? «900px»: «100%»); /* оверрайд одного свойства — в данном случае это эмуляция min- и max-width */
}

/* FireFox */

@-moz-document url-prefix() {
   
   /* для всех FireFox, вобщем-то можно и без этого уже, просто писать стиль, благодаря обрамлению, обрабатываемому только FF */
   #lightFF, x:-moz-any-link { display: block }
   
   /* главное — ошибиться в регистре, работает только для ID */
   #lightFF2[id=lightff2] { display: block }
   
   /* Firefox 3 имеет новый селектор :default. Алярм, без обрамления IE поймет эту конструкцию */
   #lightFF3, x:-moz-any-link, x:default { display: block }
   
}

/* Opera 9.5 */

/* not после media не обрабатывается ничем, кроме Opera 9.5 — видимо так писать либо нельзя, либо не все еще ввели поддержку такого формирования, использовать с умом, не писать внутри потенциально кривых вещей, неровен час через ~полгода еще кто-то это сможет обрабатывать */
media not all and (-webkit-min-device-pixel-ratio) {
   
   #lightO95 { display: block }
   
}

/* Opera 9.2 */

/* Opera эту конструкцию не поддерживает, но Opera 9.2 по неизвестным причинам все равно обрабатывает — тоже рекомендуется быть внимательным */
media all and (scan: progressive) {
   
   #lightO92 { display: block }
   
}

/* Safari */

/* Первая конструкция — против Opera 9.5, которая понимает вторую, а вторая — против Opera 9.2, которая понимает первую. Верх извратства :) Вобщем-то безопасная конструкция, т.к. 9.2 уже не будет эволюционировать и явно не сможет обработать :first-of-type, а -webkit- — проприетарное свойство и обрабатывается Opera 9.2 скорее по ошибке, что следует из отсутсвия поддержки в 9.5 */
/* Safari понимает обе, поэтому хак работает */
media all and (-webkit-min-device-pixel-ratio:0) {
   
   body:first-of-type #lightSF3 { display: block }
   /* вместо :first-of-type можно еще использовать :nth-of-type(1) — он для Safari 3.1 */
   
}

Код я более-менее подсветил…

Хаков для IE8 пока либо нет, либо он действительно будет хорош ;) в чем, правда, лично я сомневаюсь… MS собираются вводить свойства -ms- (одно из них -ms-box-model я уже даже воочию видел). Вобщем-то путь верный — такие «грабли» самые безопасные.

Посмотреть в действии можно на http://test.dis.dj/css/ (справа висит блок с выводом, какие хаки подействовали).

Как справедливо заметили в комментариях, неплохо бы побольше описать суть проблемы. Итак, что же такое хаки и зачем они вообще, и чем чревато их использование.

Все хаки можно разделить на несколько категорий:
1. Хаки в чистом виде — использование лояльностей в обработке CSS правил парсерами браузеров (например — *width для IE)
2. Намереные дополнения CSS, которые другой браузер не поймет чисто в принципе (особенно здесь рулит Mozilla со свойствами -moz- и офигенной штукой @-moz-document, которая позволяет не боясь ничего писать правила только под Mozilla)
3. Особенности поддержки браузерами нововведений CSS3 и иже с ними. Что касается IE6 — он и часть CSS2 не понимает (дочерний селектор E>F например)

Первая группа хаков ведет к невалидному CSS и вобщем-то безопасна к применению. Кривой код обрабатывать нужды нет, поэтому вменяемые браузеры как пропускали такие вещи, так и будут. По крайней мере, раз уж сами MS не обрабатывают большинство хаков в режиме стандартов даже 7го IE, то можно не опасаться за их (хаков) будущее.

Вторая группа — пожалуй, самый безопасный вариант. Если только разработчики вдруг не надумают отказаться от своих же нововведений.

Третья группа — самый коварный и нежелательный пункт. Конструкции CSS Media Query — это официальный CSS3, который рано или поздно будут поддерживать все браузеры. Различные хитрые селекторы тоже официально рекомендованы. Поэтому может настать момент, когда хак под один браузер будет интерпретироваться другими тоже. Яркий пример — Opera и Safari. Оба имеют частичную поддержку и отличаются в мелочах, правда благодаря которым стало возможно разделить правила для них. Иногда в этот вариант полу-хаков намеренно вводятся ошибки или неточности синтаксиса (как в случае с Opera 9.5). Это, конечно, убережет, в какой-то мере, от новых версий, но все равно не очешь хороший путь.

Личное мнение автора: хаки — зло, чем их меньше — тем лучше. Использовать надо только для IE6 когда надо реализовать то, что все умеют, а он нет (прозрачность, min-max-width и т.д.).

UPD. Хак для IE8: /*/ #nav a {position:relative;} /**/
UPD2. Хак для IE8 в режиме стандартов: .test { color /*\**/: blue\9 }
UPD3. Хак для любого IE, включая 8й в режиме стандартов: .test { color: blue\9 }

P.S. Спасибо плюсующим — это мой первый пост :)
dfuse @dfuse
карма
99,7
рейтинг 0,2
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (96)

  • НЛО прилетело и опубликовало эту надпись здесь
    • +2
      Для меня интереснее всего было получить хаки, которые работают отдельно в Opera 9.2, Opera 9.5 и Safari. По ссылке есть приписочка «все эти хаки понимает и Safari» — я это обошел.
      • 0
        В разработке новая страничка с хаками, уже без этого недостатка.

        По статистике, страничка про хаки популярнее самого фреймворка :)
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      С нетерпением жду времени, когда хаки будут не нужны. Вобщем-то они и сейчас не нужны ни для чего, кроме горячо любимого IE…

      Однако недавно я таки нашел применение всему вышеизложенному. Я попытался привести в одинаковый вид всего-навсего формы… чтоб radio и checkbox стояли одинаково, чтобы отступы в textarea и input[type=text] были везде одинаковые. Особенно я помучался с отступами в select, это просто песня, как там все необычно.

      Вы удивитесь, но получилось довольно много кода… хотя весь этот эксперимент по сути просто от нечего делать…
      • –15
        А вы начните делать сначала под ИЕ и потом уже проверить под другие бразуеры. Придется делать хаки под них. Так что это с какой стороны посмотреть.
        • 0
          Смотреть надо с правильной стороны… У IE плохо со стандартами, да и quirks-mode там тоже крив местами. Просто я неоднократно сталкивался с ситуацией, когда все браузеры показывают все как надо, а IE — нет :)

          Да и поддержка CSS в IE6 тоже ужасная была. min-max-width, прозрачность, отсутствие E>F — за это я его и не люблю )))
          • –10
            С правильной стороны — это со стороны пользователя. Чем больше пользуются — то в данный и момент правильно (актульно).
            У меня например неприятный баг с файрфоксом был. Во всех браузерах ролики ютубовские нормально вставляются — а в огнелисе разьезжается верстка (с новой строки слева ставит ролик — игнорируя верстку).
            • +1
              Все же я придерживаюсь позиции, что стандарты на то и стандарты, чтобы всеми одинаково поддерживаться. Стандартная верстка в 99% случаев отображается корректно, а хаки нужны, в основном, для того, чтобы реализовать функционал, которого нет в IE6, но который есть в спецификациях.

              Да там есть глупости вроде content-box, который я и еще многие разработчики считают не-интуитивным (http://www.quirksmode.org/css/box.html — под заголовком «The best?» например), но и W3C выпустили свойство box-model, которое в купе с -moz-, -webkit- и -ms- аналогами решает проблему.

              Не будем холиварить, я останусь при своём :)
              • НЛО прилетело и опубликовало эту надпись здесь
            • +3
              Спецификации не пробовали почитать, например по CSS 2? Когда ты знаешь, как себя элементы будут вести по стандартам, таких проблем не должно возникать. А все последние версии FF, Opera, Safari, GChrome и даже IE последних версий более-менее показывают все по стандартам. Даже IE 6 весьма предсказуемо себя ведет, если ничего редкого не используешь, хотя свои баги есть конечно.
        • +2
          Сначала подумали бы, прежде чем писать такое.
        • 0
          Ух как заминусовали. Видимо слово «стандарты» действует.
          Кстати — а ослик разве со стандартами не согласился? почему он их не поддерживает?
        • 0
          >> А вы начните делать сначала под ИЕ и потом уже проверить под другие бразуеры. Придется делать хаки под них.

          бугага

          понимаете, IE — он один такой, уникальный в своём мировоззрении, а нормальных браузеров — много

          поэтому и хакают IE, а не борются с ветряными мельницами (Firefox 3, Opera 9.5+, WebKit)
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              вот давайте не будем ностальгировать

              сегодня — не вчера
              • +1
                вово ) мозилла и опера хотябы обновляются регулярно и постоянно… а IE в этом смысле жутко буксует.
            • 0
              бред бред бред бред бред

              опера в год выпуска ие6 была вполне приличным продуктом. насколько я помню, как раз тогда она была с баннерами.
              нетшкаф был всегда говном. единственное время, когда он был не говном — это время вин95. тогда еще ИЕ 4 нужно было устанавливать отдельно, как щас помню.
              • НЛО прилетело и опубликовало эту надпись здесь
                • +1
                  Первая опера вообще «не поддерживала интернет» :) Со слов сотрудника она была предназначена чтобы html'ки локально смотреть.
                • 0
                  все таки останусь при своем мнении. в то время очень много сёрфил, и испытывал касяки ие6 на себе.
                  мне тогда опера казалась очень шустрым и хорошим браузером.
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      > Я никогда не питал иллюзий по поводу объективности любителей оперы.
                      эм. ну вообще то я отношу себя к операненавистникам :)
      • +1
        формы можно сделать одинаково и без хаков, но код будет мрачный
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Внешний вид — нет, а положение регулируется (еще бы). А у select в Opera и FF регулируется даже отступ.
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Смысл в том, чтобы они хотя бы позиционировались одинаково и текст вокруг отбивали одинаково и т. д.
  • +1
    Думаю статью заметят, добавят вам кармы и тогда вы сможете перенести ее. Я свою лепту внес )

    Кстати если по мне — статья слабовата. Я бы делал ее более объемной, с пояснениями, с объяснениями того что часть хаков на самом деле ими не являются, а являются частью стандарта CSS3 и чем это черевато… и так далее.
    • +2
      Ок, доработаю…
  • 0
    Интересно, почему только Mozilla додумались до @-moz-document… Как было бы прекрасно получить симбиоз conditional comments и этой конструкции…

    Например @-o-document version(9.2) { ла-ла-ла}

    Потому как таскать ворох файлов для каждого браузера по-отдельности — это же умереть можно если что-то подправить надо будет по верстке, лучше всеже все в одном держать. По крайней мере я предпочитаю все, относящееся к какому-то элементу держать в одном файле, а потом весь css отдавать PHP скриптом, предварительно его упаковав GZIP'ом.
  • +1
    Еще неплохой список хаков, пользуюсь им.
    • 0
      Староват он правда…
      • 0
        Это великая вещь. Одно из самых полных собраний… Но действительно староват…
  • +1
    Лучше обойтись без них…
    • 0
      Я скорее из любопытства это затеял. А вообще я выше написал, где я нашел применение )))

      • 0
        Кстати, я не так давно нашёл, что можно вот такое отчудить:
        http://rmcreative.ru/blog/post/podkljuchenie-stilja-tolko-dlja-safari

        т. е. можно таким образом подключать отдельными файлами большинство приведённых хаков.
        • 0
          Я как раз старался уйти от создания отдельных файлов. Иначе проще ловить USER-AGENT в PHP и им собирать финальный файл — очень неплохая мысль кстати говоря. И GZIP'om сжать можно после агрегации.
          • 0
            USER-AGENT — штука очень ненадёжная.
            • 0
              Типа хаки надежнее ;) на самом деле если кто-то себе его меняет — его личные проблемы. Просто еще раз доказывает необходимость пользоваться хаками поменьше.
              • 0
                Не, не личные, к сожалению… В том же IE всякие тулбары могут менять USER-AGENT как хотят, что и делает, например, тулбар mail.ru.
                • 0
                  Не пользуюсь :) спасибо за инфу, не знал об этом. Но наверняка можно как-то вычислить IE'шников.
  • 0
    Верстальщики используют то, чего не используют программисты — хаки.
    Думаю после прочтения статьи у желающих научиться верстать желание пропадет)
    • 0
      Я тут чуть выше написал, как бы поступали программисты ;)
  • +1
    Я бы на месте автора более отчётливо указал на то, к какой порочной практике ведут эти страшные вещи. Хоть большими красными буквами.

    Такие статьи конечно нужно писать раз в полгода (всё течёт, всё меняется) и только в научно-исследовательских целях. Иначе кто-то может взять за правило править все однопиксельные нестыковки при помощи этого ужаса.

    ps: и грамотность — намеряные (намерение), извратсва
    • 0
      Написал ))) обычными темно-красными

      P.S. Грамотность поправил. Спасибо.
    • +2
      От хаков волосы на руках растут!
      • 0
        Скорее на заднице дыбом встают ) пардон муа
  • 0
    Стараюсь использовать как можно меньше хаков, даже если это обходится в ущерб семантике. Но знать надо — рано или поздно каждому верстальщику придется столкнуться с чужой версткой, где их такой набор использован, что волосы дыбом встанут =)
  • 0
    IE8 глючный безумно… падает раз в час обязательно, но в плане CSS ниразу ниодного косяка на известных мне сайтах не заметил. Всё так как и должно быть, а учитывая что хаки он не обрабатывает можно сделать вывод что и правда всё стало правильнее.
    • 0
      Он еще beta, пусть и вторая. Так что вылеты и зависания пока что простительны. В финале надеюсь такого не будет )))
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Хром тоже сыроват… это сугубо имхо, но у них хоть со стандартами все понятно — webkit и в африке webkit…
        • 0
          согласен. последний сайт, который верстал на совесть (под сафари, ие5-6-7, фф2-3, хром) выглядел отлично везде, а вот в хроме чтото начало ехать. и самое интересное, так и не нашел куда копать..:(
  • 0
    Работаю верстальщиком. Хаки использую в 3х случаях
    1) выравнивание текста по вертикале в элементах формы select ( FF, IE6/7, подстраиваю под оперу)
    2) Для ИЕ7/6: выравнивание для картинок { vertical-align: top; } — чтобы не делали лишних отступов.
    2) ИЕ6: точнее для поддержки прозрачности png, и для задания min/max — ширины/высоты.

    Для всего другого хаки использовать давно перестал, нужны правильные руки, и понимание основных принципов верстки.

    За статью спасибо, хотя реально не знаю кому и зачем под Оперу/ФФ нужны хаки.
    • 0
      По первому пункту я наоборот под IE шные неизменяемые select'ы подстраиваю Opera и Firefox. Safari в плане windowed elements так же суров как и осёл… ничего настроить не дает.
  • 0
    О ужас, сколько всяких извращений оказывается придумано :)
    Хорошо что я обхожусь отдельным стилем для IE6 (через условные комментарии) и все.

    Но для расширения кругозора — очень полезно, спасибо! Не знал что и для опер, сафари можно специальные хаки юзать, интересно.
  • +1
    Я недавно нашёл хороший хак для Opera 9.50:

    noindex:-o-prefocus, .foropera { … }
  • 0
    Ваш пример мне напомнил www.brunildo.org/test/csshacks3.html
    • 0
      Насколько я вычитал из их таблицы стилей — они отменяют некоторые правила через другие (т. е. важен порядок хаков) — для той же Opera или Safari. Мне такое положение дел не понравилось, и у меня это только в хаках для FF и то только потому, что я не нашел вменяемого способа сделать хак только для FF2 и ниже. Ну, кроме того, который с регистром ID.

      Кстати если кто-то знает — я буду благодарен, для коллекции пригодится ) Зачем надо — FF2 и FF3 по-разному рендерят checkbox, radio и select элементы.
    • –1
      Прошел по этой ссылке, браузей определился как Safari 3, хотя я использую Chrome )
      • 0
        Если Вы используете Chrome, то следует знать, что он такой же webkit-based браузер, как и Safari, соответственно большинство хаков от Safari в нем тоже будут видны, т. к. движок почти одинаковый. В инете уже ходят хаки сугубо под Chrome, но т. к. он еще Beta, я не стал их рассматривать.
        • 0
          Безусловно, я знаю, что Chrome работает на WebKit и что же из этого следует? Что все браузеры на WebKit должны называться Safari? По моему, это не правильно. Более логично, на мой взгляд, было бы отображать версию WebKit, как это сделано для Gecko (все знают, что это «layout engine» Firefox).

          А за статью спасибо, добавил в закладки.
          • 0
            Может и следовало бы, но версия же отображается не JS'ом или еще чем-то, а просто показом того или иного DIV'a с помощью хака, поэтому надо было бы писать спец-хак для Chrome, а сейчас это, мягко говоря, невовремя ) все еще 10 раз может поменяться и хак помрет.
            • 0
              А, тогда приношу свои извинения — изначально не разобрался в механизме определения браузера.
  • –1
    Если Вы используете хаки для Opera или Safari — смените род деятельности…
    Абсолютно нормально можно резать используя только * html и *+html, все остальное, ИМХО, вообще ненужно.
    • 0
      ага, вы видно не в курсе, например что сафари текст рендерит шире, да и опера частенько глючит
      такие категоричные заявления — это от отсутсвия хорошей практики мне кажется )
      • 0
        Есть мнение, что категоричные заявления вообще не есть хорошо в нашем нелегком деле… Подобные извра-хаки нужны только для редактирования чего-то низкоуровневого (формы, рендер шрифта, для фанатов попиксельного соответствия вобщем). Я их для верстки, как таковой, не применяю. И никому не рекомендую. Хаков для IE6 это не касается — те надо принять как данность и смириться с тем, что мы делаем то, что не сделал Microsoft в свое время.
  • 0
    Добрый вечер! От вашего кода мой ИЕ6 завис со 100% загрузкой процессора. Это по вашему хороший хак? Как вы можете это объяснить?
    Я конечно понимаю, что ИЕ мягко говоря не лучший из браузеров, но он так быстро запускался, и так мало памяти просил((
    • 0
      Поставьте себе IE7, запускается так же, памяти просит меньше.
    • 0
      Очень странно, я когда тестировал — ничего не зависало. Возможно ему не понравился expression — они действительно жрут кучу ресурсов, поэтому применять их можно только с осторожностью.
  • 0
    Недавно, для меня было неприятной неожиданностью то, что Google Chrome, оказывается, чувствителен к хакам Safari. Но вот некоторые вещи всё-таки отображаются в Safari и Chrome по-разному.
    • 0
      Конечно, у него же движок WebKit… Просто они что-то сделали немного по-своему, это же Google )))
      • 0
        Да, об этом я сразу и подумал, но вот как на зло позиционирование по вертикали в небольшом блоке, высотой в 20px на 1px и различается.
        • 0
          Вы тоже любите пиксели ;)
          • 0
            Ну, без них никуда
  • 0
    вот еще хорошая подборочка хаков

    • 0
      См выше. К сожалению большинство уже устарели…
  • 0
    Изыде!
    Не дай вам боже реально пользоватся этим. Тфу-тфу-тфу.
    • 0
      Слава богу не пользую ) кроме IEшных.
  • +1
    Я думаю что самый нормальный хак, его тут уже писали

    var cssFix = function(){

    var u = navigator.userAgent.toLowerCase(),

    addClass = function(el,val){

    if(!el.className) {

    el.className = val;

    } else {

    var newCl = el.className;

    newCl+=(" "+val);

    el.className = newCl;

    }

    },

    is = function(t){return (u.indexOf(t)!=-1)};

    addClass(document.getElementsByTagName('html')[0],[

    (!(/opera|webtv/i.test(u))&&/msie (\d)/.test(u))?('ie ie'+RegExp.$1)

    :is('firefox/2')?'gecko ff2'

    :is('firefox/3')?'gecko ff3'

    :is('gecko/')?'gecko'

    :is('opera/9')?'opera opera9':/opera (\d)/.test(u)?'opera opera'+RegExp.$1

    :is('konqueror')?'konqueror'

    :is('applewebkit/')?'webkit safari'

    :is('mozilla/')?'gecko':'',

    (is('x11')||is('linux'))?' linux'

    :is('mac')?' mac'

    :is('win')?' win':''

    ].join(" "));

    }();

    • 0
      Да, красиво. Только есть один момент. Как уже писали выше, user-agent'у не всегда можно доверять, и все же решение на JS это не так красиво, как чистый CSS. Последний аргумент только для фанатов «чистых решений» ;)

      Но в целом — гениально и просто.
      • 0
        ну по поводу красивости я бы поспорил, чище чем .ie #id {....} придумать тяжело;)
        habrahabr.ru/blogs/webdev/28759/ — подробное описание
        • 0
          я бы еще версию виндов ловил — vista или xp, потому как в висте, например, в полях input[type=text] текст внутри поля на пиксель выше, чем в XP ;)

          P.S. да, я люблю пиксели ;)
    • 0
      Нашел наконец :) www.quirksmode.org/blog/archives/2006/07/browser_detect.html — хорошая, пусть и немного старая, статейка на тему определения браузера. В кратце — ничему нельзя доверять. Даже navigator.vendor нельзя доверять, тем более userAgent.
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Ну оперу то как раз можно отловить по window.opera… А вот с IE все печально…
          • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    вот еще самопальный хак в коллекцию —
    только ie6 в quirks-mode #div_id {+-display:block}
    (в quirks-mode *html для обоих ие, а *+html не работает)
  • 0
    Редко пользую такие хаки.
    IF IE — мой выбор. Остальные браузеры достаточно умны, чтобы воспринять мои методы верстки :)
    ИЕ — конечно, не вопрос, но для него можно сделать отдельный си-эс-эс через «if ie».
  • 0
    Кому-нибудь известен хак, однозначно идентифицирующий ИЕ 5.5?
    • 0
      @media tty {
      i{content:"\";/*" "*/}}@m; @import 'styles.css'; /*";}
      }/* */

      =) только не надо этим ппцом пользоваться…
  • 0
    А вот ещё момент:
    на страничке в меню использую шрифт Tahoma 16px (с дополнением sans-serif в font-family). Во всех win-браузерах всё нормально, а убунтовский Konqueror (да и не только он наверняка) подставляет Sans Serif, у которого по умолчанию почему-то расстояние между символами на 1 px больше. Думал «хакнуть» его, добавить letter-spacing: -1px, но хак применился к Хрому и Сафари… Пытался на глазок найти другой «убунтовский» шрифт, наиболее похожий на Тахому, чтобы подставить его в font-family, не получилось…
    Кто-нибудь сталкивался с такой проблемой?
  • 0
    Давно верстаю, и использовать хаки приходится часто но в основном это всеми любимый IE. Хочу не согласится с выше написанным, что использование в альтернативных браузерах хаков — не профессионально.
    бывают моменты когда хаки приходится писать сразу для всех браузеров сразу (пару раз было такое) или вот сегодня пришлось писать хаки при верстке для IE6, IE7, Safari, вы удивитесь но и отдельно для FF3. Использование хаков я считаю не грех, а вот верстать криво и с изобилием свойств в тегах не используя ccs вот это…
    И насчет Chroma- офигенный браузер, не знаю чем он кому то не угодил, по функциональности он конечно не догоняет ff но он даже не достиг версии 1.0, с версткой не было не каких проблем
    • 0
      И не должно быть проблем — Хром же на движке webkit, так что отображает почти как Safari. Различия микроскопические (например — отсутствие anti-aliasing'а для скругленных углов при использовании -webkit-border-radius)

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