Я обновляю веб-сайт для добавления некоторых мобильных дружественных страниц.
В данный момент у нас есть одна большая страница CSS со всем в. Моя идея состоит в том, чтобы поместить всю мобильную определенную CSS в отдельный файл и затем связать оба листа. Мобильная CSS будет сверхъязь что-либо в CSS по умолчанию (большие кнопки и т.д.).
Я довольно плохо знаком с CSS, какова лучшая практика?
да, вы должны использовать несколько файлов css, а не один большой файл. Это поможет вам при поддержке сайта, также используйте разные определения (имена классов или id) в разных css, иначе он возьмет тот, который был объявлен позже. Например
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link href="/stylesheets/stylesheet.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/lightbox_new.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/another_css.css" media="screen" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- Your content here -->
</body>
</html>
Использовать отдельные таблицы стилей для разных носителей легко.
<link href="browser.css" media="screen" rel="stylesheet" type="text/css" />
<link href="mobile.css" media="handheld" rel="stylesheet" type="text/css" />
<link href="print.css" media="print" rel="stylesheet" type="text/css" />
В этом случае весь стиль будет загружен и применен, когда тип мультимедиа соответствует устройству.
Однако есть еще один метод, который удобен, если ваше приложение разработано для мобильных устройств, поскольку оно загружает таблицу стилей ТОЛЬКО при совпадении типа носителя.
<style type="text/css" media="screen">
@import "screen.css"; /* Note that some (older?) browsers don't support @import, so you may have to download this sheet the traditional way even on mobiles */
</style>
<style type="text/css" media="handheld">
@import "mobile.css";
</style>
<style type="text/css" media="print">
@import "print.css";
</style>
Я бы также использовал два. Делает вещи более аккуратными при редактировании для каждого устройства (компьютера и мобильного устройства). У меня есть одна огромная таблица стилей CSS, которую я использую для всех браузеров с помощью скрипта выбора браузера css, и я ненавижу прокручивать более 6000 строк CSS, поэтому я бы сказал, что лучший способ, по крайней мере, из опыта - это отделить их!
Сгруппируйте свой CSS осмысленно и внимательно его обслуживайте.
Например, если у вас есть CSS, который применяется на всем сайте (например, сброс CSS), сделайте его отдельным файлом и включите его для каждой страницы.
Затем для каждого логического компонента вашего сайта создайте отдельный файл CSS и разместите его на страницах, принадлежащих соответствующему логическому компоненту.(Допустим, у вас есть блог и опросы на вашем сайте, если блогу никогда не нужен CSS для опросов, вам не нужно включать его в блог.) Но помните, что это непрактично для небольших сайтов.
Сгруппируйте CSS по носителям, для которых они используются. Если у вас есть таблица стилей для печати, держите ее отдельно от основных листов, если это имеет смысл (не используйте отдельные файлы, если у вас есть только одно свойство CSS для печати, поскольку это не стоит времени запроса).
Имейте в виду, что большее количество листов предполагает большее количество HTTP-запросов, и каждый запрос требует определенного количества времени.
Таким образом, нет явного способа обработки этих вещей, все дело в том, чтобы упростить поддержку вашего CSS и облегчить загрузку для клиента (меньше HTTP-запросов, меньший размер и т. Д.)
Я думаю, что лучше использовать 1 для стиля, 1 для ie6, один для ie7. Больше ничего. Внутри style.css организация должна быть автоматической. Использование логических имен классов и комментариев.
Меньше httprequest - это хорошо. Меньше разметки - хорошо. :)
Что касается стилей для конкретных клиентов, я бы сказал, что лучше всего их разделять.
Я бы использовал несколько таблиц стилей, чтобы все было лучше организовано, а затем сжимал их в один файл перед размещением на сайте, чтобы повысить производительность.
Один большой файл CSS приводит к меньшему количеству HTTP-запросов, что может повысить производительность.
Несколько файлов меньшего размера упрощают организацию, что удешевляет и упрощает разработку и сопровождение.
У вас должен быть набор таблиц CSS для различных задач, иначе все быстро запутается!
У меня есть несколько таблиц стилей для всех значительных приложений, над которыми я работал.
media
.
Если бы я стремился к молниеносной производительности, я бы объединил их. Однако я знаю, что сайты, получающие сотни миллионов посещений в день, не беспокоятся об этом, поэтому я настоятельно рекомендую разделить их так, как вам удобно, чтобы облегчить обслуживание.
По большей части, дополнительное оборудование дешевле, чем дополнительные часы разработчиков и/или больше ошибок. Удобство обслуживания обычно является для меня высшей целью.
Сам я предпочитаю две таблицы стилей. Первая, и та, которая всегда стоит на первом месте в моем HTML, - это таблица стилей сброса. Применение этой первой таблицы стилей помогает веб-страницам отображаться более стабильно в различных браузерах.
Часто нет необходимости создавать более одной дополнительной таблицы стилей. Как правило, команды CSS, специфичные для IE, игнорируются Firefox и другими совместимыми браузерами, и наоборот. Настоящая проблема возникает, когда элемент на странице должен быть позиционирован и иметь одинаковый размер в нескольких браузерах - в этот момент необходимо более двух таблиц, хотя иногда можно добиться хороших результатов за счет правильного упорядочивания внутри таблицы.