Сохранение CSS прямо на странице в браузере

arvitaly

Новичок
Как часто вам приходится сохранять стили в своем редакторе и обновлять страницу в браузере? Каждый раз при работе в web-консоли — копируете стили и вставляете в файл .css и сохраняете его?
Решение проблемы
Представим, что у нас есть html-страница и подключены несколько css с помощью
PHP:
<link rel="stylesheet" type="text/css" href="/MAIN.css" />
<link rel="stylesheet" type="text/css" href="/PAGE.css" />
и есть отдельный блок стилей

PHP:
<style>
#main {width:100%;}
</style>
Каждый из блоков содержит плоский список из 2 значений: селекторов и собственно стилей.

При загрузке страницы браузер для каждого из подгружаемого блока стилей создает новый элемент в document.styleSheets.
Каждый styleSheet элемент содержит деток cssRules и ownerNode.

А дальше начинается самое интересное.

При изменении в web-консоли стилей именно на эти селекторы — соответственно изменяются массивы cssRules (ну и computed style в самом элементе и это позволяет нам видеть изменения сразу).

Мы создаем функцию срабатывающую по горячей клавише или нажатию на кнопку на странице (неважно). Допусти можно навесить обработчик keyup на ctrl+S. Далее мы пробегаемся по массиву document.styleSheets, для каждого ownerNode узнаем значение аттрибута href и посылаем на сервер сериализованный массив cssRules и Href. На сервере сохраняем в соответствующий файл — новые правила!

А как же быть с нефайловыми стилями? Тут нужен индивидуальный подход. Допустим можно дать каждому из них ID и перезаписывать их в файле, а впрочем это уже зависит от архитектуры приложения и вариантов действительно очень много.

Таким образом мы ускоряем изменение каждого стиля — как минимум на 2 шага: сохранить вместо скопировать, сохранить и обновить. Но мне лично просто нравится такая удобная фишка.

Любителям SASS тоже можно найти чем поживиться :)
 

Фанат

oncle terrible
Команда форума
Что это?
Вся эта унылая копипаста - ради ссылки в подписи, или что?
 

Фанат

oncle terrible
Команда форума
гугль находит три сайта с этим текстом. возможно, на хабре - тоже ты автор.
вот я и хочу понять - это что вообще? для чего?
 

arvitaly

Новичок
На хабре тоже я автор, ну просто рассказать людям о фишечке :) Что плохого-то?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Вся эта херня не нужна с тех пор, как в phpStorm появился liveEdit, который делает это все автоматически.
 

Фанат

oncle terrible
Команда форума
Если б я видел плохое, то снес бы молча.

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

Ты бы хоть написал что-то от себя, чтобы не выглядело копипастой с другого форума.
 

arvitaly

Новичок
Хм, надо разузнать - спасибо за наводку, но я просто опубликовал часть решения без чужих продуктов
 

WMix

герр M:)ller
Партнер клуба
HEm
посылаем на сервер сериализованный массив cssRules и Href. На сервере сохраняем в соответствующий файл — новые правила!
если чесно я сам не понял фишечку... краткий рассказ о обьектной структуре стилей в браузере, намек на то что ею можно манипулировать... и сама фишка, поменяли фиребагом или даже скриптом самой странички стиль и кинули на сервер...

разве не прикольно тебе это? зачем писать в эклипсах цсс если его можно писать браузером?
 
Сверху