Какие уловки на стороне клиента, чтобы обойти абсурдный лимит в 32 таблицы стилей IE7?
Я только что методом проб и ошибок определил, что в IE 7 верхний предел составляет 32 таблицы стилей (т. Е. Теги).
Я работаю над интерфейсом очень большого веб-сайта, на котором мы хотим разбить наш CSS на столько отдельных файлов, сколько захотим, поскольку это значительно упрощает разработку и отладку.
Производительность не имеет значения, поскольку мы сжимаем все эти файлы в один пакет перед развертыванием.
Проблема на стороне развития. Как мы можем работать с более чем 32 таблицами стилей, если IE 7 имеет верхний предел 32?
Есть ли способы взломать вокруг этого?
Я пытаюсь найти решения, но кажется, что даже если бы я загружал таблицы стилей через Ajax, я все равно выписывал бы теги, которые все равно учитывались бы в пределе для 32 таблиц стилей.
Это тот случай? Я застрял с ограничением в 32 файла или есть способ обойти это?
ПРИМЕЧАНИЕ. Я прошу решение проблемы на стороне клиента. Очевидно, что решение на стороне сервера не является необходимым, поскольку у нас уже есть система сжатия. Я просто не хочу делать повторное сжатие каждый раз, когда делаю одно небольшое изменение CSS, которое хочу протестировать.
6 ответов
В моей последней компании мы решили эту проблему, собрав все CSS в один большой документ и вставив URL на веб-страницу, которая ссылается на этот однократный документ. Все это было сделано на лету, непосредственно перед тем, как вернуть страницу клиенту (за кулисами происходило множество вещей, которые генерировали динамический CSS).
Возможно, вы сможете заставить свой веб-сервер делать что-то подобное, в зависимости от ваших настроек, в противном случае это звучит так, как будто вы застряли только с 32 файлами.
Или вы можете просто не поддерживать IE7;)
Я собираюсь добавить это в качестве отдельного ответа, просто чтобы увидеть, сколько голосов оно получит:
Не поддерживает IE7.
РЕДАКТИРОВАТЬ: Чтобы избежать путаницы: я не всерьез предлагаю это как реальное решение. Нет пламени, пожалуйста!
Создайте CSS-файлы на стороне сервера и объедините все файлы, которые необходимы для этой определенной страницы.
Если вы используете Apache или Lighttp, подумайте об использовании mod_concat
Запишите свою таблицу стилей в существующий блок стилей с помощью Javascript, используя свойство cssText, например:
document.styleSheets [0].cssText + = ourCss;
Больше информации здесь:
http://bushrobot.blogspot.co.uk/2012/06/getting-around-31-stylesheet-limit-in.html
Не совсем ответ, но я помню, что при использовании Drupal 6 (CMS) была возможность объединять таблицы стилей при запросе страницы. Возможно, вы могли бы программно сделать что-то подобное.