Страница 1 из 1

Зачем нужны два css-файла?

СообщениеДобавлено: 14 май 2013, 23:20
Kiskenbassker
Зачем во всех шаблонах Concrete5 два css-файла - main.css и typography.css? В typography прописываются шрифты, в main все остальное. Но зачем такое разделение? И можно ли при верстке своего шаблона обойтись одним css-файлом, или для корректной работы cms необходимо, чтобы их было два?

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 15 май 2013, 00:28
Count_Raven
Kiskenbassker писал(а):Зачем во всех шаблонах Concrete5 два css-файла - main.css и typography.css? В typography прописываются шрифты, в main все остальное. Но зачем такое разделение? И можно ли при верстке своего шаблона обойтись одним css-файлом, или для корректной работы cms необходимо, чтобы их было два?


Можно не использовать typgraphy.css и вообще его удалить.
Можно иметь его в корневой папке шаблона, но не обязательно его подключать в <head> ... </head>

Т.е. в своем CSS файле (не обязательно именно main.css, он может называться хоть my-style-bla-ololo.css) вы можете задать все параметры шрифтов и т.д. для типографики и все остальные стили запихать.

А теперь расскажу зачем typography.css
Этот файл загружается в редактор (когда вы добавляете/редактируете текстовый контент на странице).
Т.е. если вы хотите изменить стили WYSIWYG редактора TinyMCE, то пропишите в этом файле свои стили для текста/ссылок и т.д. Если не станете, то будут использоваться стили редактора по-умолчанию.

Простая ситуация:
У вас на параграфы размером 1.0em, h1 у вас красного цвета и размера 1.8em, ссылки красные, отступ сверху у параграфа 0.3em.
Кликните на редактирование контента и увидите, что в редакторе там размеры другие, h1 будет обычного черного цвета, а ссылки стандартные синие. Это в том случае, если вы не используете typography.css

В шаблоне в <header> typography.css прописывается только для того, чтобы тоже самое не писать и в main.css. Можно в них разные стили прописать и не подключать в шаблоне typography.css. Тогда на сайте текст будет выглядеть так, а при редактировании иначе.

Короче говоря:
main.css - это файл стилей для сайта.
typography.css - это файл, использующийся в редакторе текста.

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 15 май 2013, 09:09
guyasyou
а я не знал что редактор именно из typography.css стили берет)))

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 15 май 2013, 10:03
Kiskenbassker
Count_Raven

Спасибо за подробный ответ!

Но тогда возникают встречные вопросы:

1. А можно ли наоборот, удалить файл main.css, а все стили прописать в typography.css? Тогда и на сайте будет все хорошо, и в редакторе. Или я неправильно понимаю?

2. Существует ли возможность сменить файл css, который подтягивается текстовым редактором? Например, в редакторе JCE для Joomla есть опция выбора того, какой css файл будет подтягиваться. Возможно, подобный редактор есть и для Concrete5?

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 15 май 2013, 11:22
Михаил
guyasyou писал(а):а я не знал что редактор именно из typography.css стили берет)))

Аналогично. Спасибки "Граф ВОРОН"!(или правильно "Чёрный граф?) Правда я тока учусь и как правило на своих ошибках. :(

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 15 май 2013, 13:10
cmsservice
Kiskenbassker писал(а):1. А можно ли наоборот, удалить файл main.css, а все стили прописать в typography.css? Тогда и на сайте будет все хорошо, и в редакторе. Или я неправильно понимаю?

Можно, но бывают ситуации когда это не желательно, т.е. некоторые стили например для тега body не должны влиять на редактор. Простой пример: у body может быть фоном замысловатая текстура, Вам она в редакторе зачем? Ну и много других примеров можно привести, когда влияние на редактор не желательно.

В общем же случае использовать один файл вместо двух можно, так же как и не один. У нас в проектах их не один например.

Kiskenbassker писал(а):2. Существует ли возможность сменить файл css, который подтягивается текстовым редактором? Например, в редакторе JCE для Joomla есть опция выбора того, какой css файл будет подтягиваться. Возможно, подобный редактор есть и для Concrete5?

Существует, в файле concrete/models/page_theme.php (<=5.5) или concrete/core/models/page_theme.php (5.6) есть константа FILENAME_TYPOGRAPHY_CSS

Вы с какой целью спрашиваете? Просто возможно есть более прямой путь для решения возникшей потребности. :)

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 15 май 2013, 13:20
Kiskenbassker
Я спрашиваю просто с целью узнать больше о Concrete5. В принципе пока все ясно, спасибо, вопросов по этой теме больше нет. :)

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 15 май 2013, 13:49
cmsservice
Ну если побольше узнать, то отмечу еще один момент.

В принципе в C5 используется немалое количество CSS и JS файлов. Для более или менее нагруженных проектов это не очень хорошо, я бы даже сказал критично в плане скорости загрузки страниц. Как в литературе, так и в любом сервисе по оптимизации скорости загрузки этот факт отмечен, как негативный ибо при нынешней ширине каналов всегда быстрее загрузить один файл, пусть даже и 100кб, чем много маленьких таким же общим объемом.

Собственно одно из решений данной проблемы - минификация и сливание файлов в один (т.е. один CSS и один JS), а также перемещение подключения JS в конец страницы. Это можно сделать как вручную, так и автоматически. При ручной оптимизации мы упускаем множество файлов view.css(.js), которые подключаются автоматически для модулей, используемых на странице.

Для автоматической оптимизации этой части сайта мы выпустили специальную сборку
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
, которая включает в себя функционал автоматической минификации и слияния файлов.

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 16 май 2013, 01:09
Admin
cmsservice писал(а):..
Для автоматической оптимизации этой части сайта мы выпустили специальную сборку ..., которая включает в себя функционал автоматической минификации и слияния файлов.


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

Re: Зачем нужны два css-файла?

СообщениеДобавлено: 16 май 2013, 11:05
cmsservice
Admin писал(а):Или есть какие-то определенные причины, по которым вы не сделали это модулем?

Причины есть ибо там существенно кастомизируется базовый класс View, т.е. по сути меняется часть ядра. Выпустить отдельным модулем можно, который при установке будет раскидывать нужные файлы (хелпер и вьюшку) по директориям, но проще выпустить сборку, чтобы потом не было разговоров типа: "Установил модуль, а ничего не изменилось", потом оказывается что у него директории недоступны для записи. В общем, как-то так :)