Строгий и хакерский CSS - что предпочтительнее - PullRequest
1 голос
/ 20 января 2011

При использовании css не займет много времени осознание того, что некоторые вещи не являются кросс-браузерными.

Например, когда я хотел полупрозрачный png, мне пришлось дать IE что-то смешное, например:filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...);

У меня были проблемы с позиционированием, псевдо-селекторами и т. Д., Как и любой, кто играл с css более 20 минут.

  • Решитьиногда возникают проблемы, когда я решаю, что буду делать то, что поддерживают и поддерживают все браузеры, одним и тем же (или, по крайней мере, довольно похожим) способом.
  • В других случаях я просто добавляю условные комментарии и даю IE свой собственныйтаблицы стилей.
  • А потом в других случаях я просто использую css-хаки, чтобы исключить определенные браузеры для чтения определенных битов (например, старые "* html {}" или "html>/**/body {}")

Такмой вопрос, какой вариант самый лучший.Первое довольно ограничивающее, и вы заканчиваете тем, что разрабатываете то, на что способен IE6, но другие два чувствуют себя немного грязно.Итак, какие ставки с точки зрения практики программирования, эффективности рендеринга и т. Д .?

Ответы [ 2 ]

1 голос
/ 20 января 2011

Краткий ответ:

  • Делайте все возможное, чтобы придерживаться стандартов
  • Будь креативным
  • Прекратите использовать хаки и начните использовать условные комментарии

В долгосрочной перспективе CSS-хаки просто загрязняют ваши таблицы стилей и затрудняют их обслуживание. Избегайте их везде, где можете, и вместо этого используйте условные комментарии со специфичными для IE таблицами стилей (так как большинство хаков обслуживают IE). Я могу гарантировать, что CC гораздо менее грязные, чем хаки, если они вообще грязные.

Вы не должны быть ограничены IE все время. Существует концепция, называемая прогрессивное улучшение , что означает, что вы можете сделать свои страницы немного красивее в современных браузерах, поддерживающих расширенные стили, и так далее. Нет ничего плохого в использовании CSS3-свойств, таких как border-radius сегодня, поскольку поставщики браузеров работают (относительно) быстро, чтобы обеспечить поддержку этих продуктов для своих продуктов.

Но тогда есть клиенты, которые были бы другой темой для обсуждения. Я бы сказал, что соблюдайте баланс: обучайте своих клиентов и проявляйте творческий подход, но не пытайтесь делать что-то слишком умное или причудливое. И, пожалуйста, просто избегайте CSS-хаков, если только не половина шестого утра, и вы бросаете банку за банкой пива и просто хотите что-то сделать при любых обстоятельствах.

1 голос
/ 20 января 2011

Я всегда предпочитаю условные комментарии с исправлениями IE. Хаки не согласуются с тем, что IE исправляет парсинг, поэтому хак больше не работает, но не исправляет то, что хак компенсирует. Также они могут связываться с другими парсерами CSS.

...