перегрузка каскадных таблиц стилей - PullRequest
1 голос
/ 04 июня 2010

У нас есть проект, который нужно будет работать в IE6,7,8.

Я не очень разбираюсь в таблицах стилей, однако знаю, что есть разные способы загрузки таблиц стилей в зависимости от типа браузера.

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

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

Ответы [ 2 ]

2 голосов
/ 04 июня 2010

Нет сайтов, о которых я знаю, на самом деле вручную сохраняются разные версии большого файла CSS для каждого браузера. Обычно они просто сохраняют основную таблицу стилей и вложенные таблицы стилей, как в первом случае, но объединяют их вместе, используя сценарий, в статический файл. Сохранение другой копии всех стилей CSS для каждого браузера просто не стоит проблем.

Оба указанных вами способа действительны и имеют свои преимущества:

Основная таблица стилей с подстилами для каждого браузера: Этот метод прост и работает нормально.

  • Pro: вам не нужно иметь скрипт для объединения специфичных для браузера таблиц стилей с основной таблицей стилей, прежде чем они будут отображаться пользователю.
  • Con: требуется загрузить больше страниц, и это может быть немного медленнее; Приоритет CSS Проблемы могут быть сложнее отлаживать, поскольку CSS распространяется на несколько страниц

Объединенная основная таблица стилей и таблицы стилей для конкретного браузера: Этот метод идеально подходит для больших (и я имею в виду больших ) сайтов, которые имеют много запросов: ( например, Yahoo, который имеет этот файл CSS, который принимает строку запроса для объединения файлов CSS); плюсы и минусы в основном обратное.

Я рекомендую вам просто выбрать первое решение, если ваш сайт не очень большой; при обнаружении PHP и браузера на стороне сервера код может выглядеть следующим образом:

echo "<link rel='stylesheet' type='text/css' href='/css/main.css' />\n";
$browser = get_browser(null, true);
$browser = $browser['browser'];
if ($browser == 'Firefox') {
    echo "<link rel='stylesheet' type='text/css' href='/css/firefox.css' />\n";
} elseif ($browser == 'Internet Explorer') {
...

Обратите внимание, что лучше всего, если ваш дизайн вообще не требует специфичного для браузера CSS. В большинстве случаев это не является необходимым и вызвано плохим пониманием атрибутов CSS. Чтобы исправить незначительные несоответствия браузера по умолчанию, библиотека CSS, такая как YUI reset , может быть очень полезна.

1 голос
/ 04 июня 2010

Я бы определенно воспользовался каскадным характером таблиц стилей.

Я бы включил base.css, а затем, если хотите, добавьте таблицу стилей для каждого браузера.

Однако я не рекомендую рекомендовать его. Как правило, в IE6 + 7 можно играть в мяч без необходимости использования другой таблицы стилей.

Однако, если вы не можете, ознакомьтесь с условными комментариями .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...