Это не половина функционала. А так, мелкие приукрашения, которых формально нет, а есть только для нужной тебе версии IE.
Единственный недостаток, который я вижу в таком подходе - один лишний реквест. :) Но в принципе это мелочь. Зато поддерживать стили лично мне куда проще - имеешь дело в основном с совершенно чистым кодом, и держишь все хаки в одном месте - порядок получается. К тому же, браузерные баги - вещь непостоянная, а вот на эту функциональность ты можешь положиться, потому что она реализована намеренно для помощи разработчикам.
Значит, вы, считаете, что смотрите в будущее, полагаясь в своём коде на ошибки браузеров?
Да, так не может продолжаться вечно, но ситуация существенно улучшается. Скажем, поддерживать отдельно мне приходится только IE6, - IE7 в подавляющем кол-ве случаев работает так, как и ожидалось. Когда наступит время, я просто уберу лишнюю строчку комментариев, в то время как вы будете тщательно вычищать от гадости весь CSS-код, выискивая эти эксплоиты. При использовании хаков (при том, что это никаким образом вообще не влияет на семантику документа) вам гораздо труднее поддерживать код - на это уходит больше времени, существенно повышается кол-во ошибок, вы можете запросто в этих всех уловках запутаться. В моём же случае всё проще простого - мой стандарто-совместимый код совершенно чист, вся грязь - всего лишь в никому ненужных комментариях.
Не понимаю, почему вы относите комментарии к HTML и семантике. Текст в комментариях имеет смысл только для разработчиков, поддерживающих код и других сущностей, которым это нужно (в данном случае IE). И для поисковиков, и для w3c, для поддерживающих стандарты браузеров, для устройств, которые парсят эти данные как семантическую структуру их просто нет. Аргумент про SEO в контексте этого мне кажется совершенно абсурдным.
>На мой взгляд более корректным решением, чем хаки css является только прямое следование стандартам и отказ от поддержки ошибок IE.
И как, успешно применяете это решение? ;)
Поймите, веб-стандарты - это не самоцель. При всей их важности, первый приоритет веб-разработчика - это доступность. Доступность контента с любого браузера, с любого устройства, при любой конфигурации.
Ратовать за веб-стандарты и при этом плевать на 50% посетителей - это совершеннейший абсурд. Вы создаете веб-сайты не для w3c, а для людей! Стандарты - это лишь средство для достижения совершенной доступности сайтов и людям, и машинам, в то время как некоторые разработчики возводят его в ранг фетиша. Это неправильно.
Во-первых, это не хак. Только недавно, блин, обсуждали, - хак - это эксплоит определённого бага, в случае вёрстки - браузерного. Условные комментарии - намеренно реализованная функциональность, которая в отличии от багов работает совершенно предсказуемо.
Во-вторых, их использование - это не нарушение стандартов. По крайней мере, со стороны веб-разработчика - код им соответствует в полной мере (поскольку комментарии игнорируются, он в них может писать всё, что пожелает). Нарушение со стороны создателей IE, но нарушение вынужденное (иначе пришлось бы полагаться на баги).
Забивать на юзеров и делать сайты "for non-IE browsers only" - думаете, это сможет повлиять на разработчиков браузеров? Отнюдь. Это возвращение в прошлый век и не намного лучше сайтов "IE-only" 10-летней давности.
>Но уж простите, пофикшено наиболее доставшее меньшинство.
IE7 меня достаёт на много порядков меньше IE6 - поэтому лично я доволен. Проблемы хоть и случаются, но они случаются везде - и в FF иногда, и в Safari, и в Opera - не очень часто, и это совершенно нормально. IE7 стал с ними сравним, в то время как на IE6 приходится тратить совершенно ужасное кол-во времени и нервов.
Ну, тут согласен. Но баг слишком специфичный - необходимость в подобном возникает настолько редко, что особо серьёзной мороки не доставляет. Можно и отдельными стилями box model подправить. Или указывать ширину ячеек в процентах. Давайте дальше, интересно.
ОК, давайте по порядку. Что конкретно поганит hasLayout? Какие конкретно проблемы у вас с флоатами в IE7? Как именно глючит IE7 с em-единицами в таблицах? Постараюсь вам помочь. :)
Рад, что вам оказались полезны мои разъяснения. :)
Именно потому, что conditional comments не причисляются к хакам, их и призывают использовать. Баги браузера - вещь непостоянная, с новыми версиями фиксятся, появляются новые... Полное соответствие web-стандартам с одной стороны и использование укоренившегося решения от MS с другой - напротив, куда более стойко к течению времени и легко предсказуемо.
CSS hacks take advantage of browser bugs to perform magic such as "hiding" CSS rules from specific web browsers, or kicking browsers that don't follow the specs into line.
Вторая - с блога разработчиков IE7:
We ask that you please update your pages to not use CSS hacks. If you want to target IE or bypass IE, you can use conditional comments. - http://blogs.msdn.com/ie/archive/2005/10…
Фраза подразумевает, что понятия взаимоисключающие.
Странно, но лично у меня с IE7 проблем практически не возникало - всё работает, как ожидалось, все самые известные глюки пофиксили. Отдельные стили приходится писать в основном только для IE6. Но вот многие другие разработчики жалуются. Интересно, что я делаю не так?
Нет. Хаками называют эксплоиты известных браузерных багов. IE conditional comments - это обычный комментарий для всех нормальных браузеров и фича для IE. Никакие баги здесь не задействованы, так что хаком не является.
Единственный недостаток, который я вижу в таком подходе - один лишний реквест. :) Но в принципе это мелочь. Зато поддерживать стили лично мне куда проще - имеешь дело в основном с совершенно чистым кодом, и держишь все хаки в одном месте - порядок получается. К тому же, браузерные баги - вещь непостоянная, а вот на эту функциональность ты можешь положиться, потому что она реализована намеренно для помощи разработчикам.
Да, так не может продолжаться вечно, но ситуация существенно улучшается. Скажем, поддерживать отдельно мне приходится только IE6, - IE7 в подавляющем кол-ве случаев работает так, как и ожидалось. Когда наступит время, я просто уберу лишнюю строчку комментариев, в то время как вы будете тщательно вычищать от гадости весь CSS-код, выискивая эти эксплоиты. При использовании хаков (при том, что это никаким образом вообще не влияет на семантику документа) вам гораздо труднее поддерживать код - на это уходит больше времени, существенно повышается кол-во ошибок, вы можете запросто в этих всех уловках запутаться. В моём же случае всё проще простого - мой стандарто-совместимый код совершенно чист, вся грязь - всего лишь в никому ненужных комментариях.
И как, успешно применяете это решение? ;)
Поймите, веб-стандарты - это не самоцель. При всей их важности, первый приоритет веб-разработчика - это доступность. Доступность контента с любого браузера, с любого устройства, при любой конфигурации.
Ратовать за веб-стандарты и при этом плевать на 50% посетителей - это совершеннейший абсурд. Вы создаете веб-сайты не для w3c, а для людей! Стандарты - это лишь средство для достижения совершенной доступности сайтов и людям, и машинам, в то время как некоторые разработчики возводят его в ранг фетиша. Это неправильно.
Во-вторых, их использование - это не нарушение стандартов. По крайней мере, со стороны веб-разработчика - код им соответствует в полной мере (поскольку комментарии игнорируются, он в них может писать всё, что пожелает). Нарушение со стороны создателей IE, но нарушение вынужденное (иначе пришлось бы полагаться на баги).
Забивать на юзеров и делать сайты "for non-IE browsers only" - думаете, это сможет повлиять на разработчиков браузеров? Отнюдь. Это возвращение в прошлый век и не намного лучше сайтов "IE-only" 10-летней давности.
Ну hasLayout - проблема, да, но я уже с ней как-то привык справляться - на полуавтомате уже его устанавливаю (height: 1%, zoom, inline-block, etc.)
Флоаты - опять же, очень навороченные случаи, обычно всё гораздо проще. :)
IE7 меня достаёт на много порядков меньше IE6 - поэтому лично я доволен. Проблемы хоть и случаются, но они случаются везде - и в FF иногда, и в Safari, и в Opera - не очень часто, и это совершенно нормально. IE7 стал с ними сравним, в то время как на IE6 приходится тратить совершенно ужасное кол-во времени и нервов.
Я думаю, народ ругается в основном потому, что привык ругаться на IE. По инерции. :)
Именно потому, что conditional comments не причисляются к хакам, их и призывают использовать. Баги браузера - вещь непостоянная, с новыми версиями фиксятся, появляются новые... Полное соответствие web-стандартам с одной стороны и использование укоренившегося решения от MS с другой - напротив, куда более стойко к течению времени и легко предсказуемо.
Первая цитата - с вики на http://css-discuss.incutio.com/:
Вторая - с блога разработчиков IE7:
Фраза подразумевает, что понятия взаимоисключающие.
Странно, но лично у меня с IE7 проблем практически не возникало - всё работает, как ожидалось, все самые известные глюки пофиксили. Отдельные стили приходится писать в основном только для IE6. Но вот многие другие разработчики жалуются. Интересно, что я делаю не так?