Java, UX, HTML, CSS, WEB-design

CSScomb: сортировка свойств CSS, лучший способ

[ad_1]

  • Вячеслав Олиянчук

  • 0 Комментарии

CSScomb: сортировка свойств CSS, лучший способ

  • 9 минут чтения

  • Кодирование, Инструменты, CSS

Краткое резюме ↬

Это наша седьмая статья в серии, в которой представлены новейшие полезные и свободно доступные инструменты и методы, разработанные и выпущенные активными членами сообщества веб-дизайнеров. Первая статья была посвящена PrefixFree; второй представил Foundation, адаптивный фреймворк; третья представила Sisyphus.js, библиотеку для клиентских черновиков наподобие Gmail. Четвертый поделился с нами бесплатным плагином под названием GuideGuide, а позже мы анонсировали генератор адаптивной сетки Erskine Gridpak и JS Bin. На этот раз мы представляем CSScombинструмент, помогающий сортировать и классифицировать свойства CSS в коде для улучшения обслуживания.
CSScomb
На момент написания этой статьи веб-браузеры поддерживают около 200 различных свойств CSS. По всей вероятности, вы используете почти каждый из них в своих проектах. Итак, пришло время подумать о согласованности порядка свойств CSS внутри объявлений селекторов так же серьезно, как вы думаете о согласованности форматирования кода. Итак, если вы хотите обратить внимание на стиль своего кода, эта статья для вас. Существует простой способ автоматической сортировки свойств CSS в ваших проектах.

Это наша седьмая статья в серии, в которой представлены новейшие полезные и свободно доступные инструменты и методы, разработанные и выпущенные активными членами сообщества веб-дизайнеров. Первая статья была посвящена PrefixFree; второй представил Foundation, адаптивный фреймворк; третья представила Sisyphus.js, библиотеку для клиентских черновиков наподобие Gmail. Четвертый поделился с нами бесплатным плагином под названием GuideGuide, а позже мы анонсировали генератор адаптивной сетки Erskine Gridpak и JS Bin. На этот раз мы представляем CSScombинструмент, помогающий сортировать и классифицировать свойства CSS в коде для улучшения обслуживания.

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

CSScomb — это утилита для сортировки свойств CSS в каждом объявлении селектора в заранее определенном порядке. Алгоритм CSScomb призван максимально приблизиться к выбору, который веб-разработчик сделал бы при работе с кодом CSS. Для пересортировки обычно приходится вырезать и вставлять строки с учетом комментариев, многострочных значений, хаков — всего, что вы встретите в любом серьезном проекте. Эту задачу довольно скучно выполнять вручную: вы можете доверить CSScomb сделать это за вас.

CSScomb

Алгоритм CSScomb разработан, чтобы «думать» как человек-редактор, а не как тупой робот, разбирающий CSS. Это делает утилиту простой.

Еще после прыжка! Продолжить чтение ниже ↓

Вот пример того, как CSScomb может исправить беспорядочный код:

Расчешите свой код
Слева несортированный код. Справа код после использования CSScomb.

Итак, некоторые подробности для гиков и перфекционистов, которые любят светскую беседу о технологиях…

Зачем вам нужен CSScomb?

Я работал в нескольких командах, и у каждой был свой стиль кодирования CSS. Система именования классов CSS, длины строк, пробелов, табуляции и отступов, а также порядок свойств CSS в селекторах — все было по-другому. Поддерживать правильный порядок вручную было утомительно. Кроме того, иногда мне приходилось работать с устаревшим или сторонним кодом, который не соответствовал нашему стилю написания кода. Именно тогда я решил создать очень простую утилиту, которая делала бы только одну вещь, но делала бы это хорошо: сортировать свойства внутри каждого селектора.

CSScomb превратился в отличную утилиту, которая действительно может помочь в вашей профессиональной работе. Вот несколько причин использовать этот небольшой инструмент для сортировки CSS:

  1. CSScomb помогает поддерживать ваш стиль кодирования.

    Это очень важно для долгосрочных проектов, в которых код постоянно редактируется, переписывается или заменяется. Чтобы поддерживать единообразие и сделать код независимым от стиля какого-либо одного программиста, вам придется следить за каждым набираемым символом. В таких ситуациях CSScomb избавит вас от бремени и позволит вам сосредоточиться на более важных вещах.

  2. CSScomb помогает вам понять код.

    Код, написанный вами, вашими коллегами или другими программистами, будет предсказуемо отсортирован и, следовательно, более понятен.

  3. CSScomb помогает быстрее находить свойства CSS.

    Вы бы точно знали, где находится свойство CSS, и просмотр списка объявлений потребовал бы меньше усилий.

  4. CSScomb предотвращает случайные ошибки.

    Переопределение свойств в селекторе CSS маловероятно, поскольку будут отсортированы идентичные свойства. Взаимоисключающие свойства также будут хорошо видны.

Как именно должны быть отсортированы свойства CSS?

Я создал CSScomb по другой причине: ни одна известная мне утилита не могла хорошо сортировать свойства CSS. В некоторых онлайн-улучшателях CSS была возможность сортировки. Но это был всего лишь вариант, и, что более важно, дизайну не уделялось никакого внимания. Создавалось впечатление, что эти утилиты были написаны программистами, стремящимися продемонстрировать свои способности другим программистам.

Особенно поразили настройки. Очевидно, что сортировка свойств CSS по длине абсурдна. Если бы вы попытались применить такую ​​сортировку к реальному файлу, вы бы сразу увидели недостатки. Например, top, right, bottom и left будут разбросаны по всему объявлению селектора. Само собой разумеется, что алфавитное расположение гарантирует, что все свойства с префиксами будут сгруппированы вместе.

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

Единственный способ с пользой отсортировать свойства CSS — это расположить их функционально. Это порядок сортировки, включенный в CSScomb по умолчанию. Все свойства разделены на несколько групп и расположены в наиболее логическом порядке внутри каждой группы.

Когда я начал разрабатывать CSScomb, я взял порядок сортировки по умолчанию из проекта Zen Coding (возможно, вы знаете о нем). Но список свойств в CSScomb стал немного больше, чтобы учесть нюансы реального CSS. Вы можете узнать больше об объявлении порядка сортировки по умолчанию на странице CSScomb на GitHub»).

Если необходимо использовать другой порядок сортировки, есть две дополнительные функции:

  • Вы можете изменить порядок сортировки (потому что, скажем, вы уже используете другой порядок в своем проекте);
  • Вы можете разделить группы свойств разрывами строк.

CSScomb сортирует свойства в вашем CSS, используя массив JSON с именами всех свойств по порядку. Изменение порядка сортировки возможно, но вам придется переставить 200 значений в этом массиве JSON. Я надеюсь, что вы недостаточно мотивированы, чтобы сделать это. Алгоритм сортировки по умолчанию мне кажется наиболее рациональным.

Вы также можете разделить свойства на группы, например:

#box {
  position: absolute;

  margin: 1em 0;
  border: 20px solid black;

  background: green;
  box-shadow: 0 2px 10px #666;
  color: red;

  letter-spacing: 3px;
  font-size: 72px;
  }

Чтобы сделать это, вы должны переписать массив со свойствами CSS как массив массивов, например:

[
  [
    "position",
    …
  ],
  [
    "margin",
    "padding",
    "border",
    …
  ],
  …
]

Что может CSScomb?

Даже если мне лично нравится правило «одна строка, одно свойство», CSScomb совершенно не зависит от того, используете ли вы однострочный или многострочный синтаксис или как вообще отформатирован ваш код. Цель утилиты — просто изменить порядок свойств.

Повторяющиеся свойства будут отсортированы одно за другим в том же порядке, в котором они были в исходном объявлении селектора.

Неизвестные свойства (то есть те, которые не указаны в объявлении порядка сортировки) будут перемещены в конец списка в том же порядке, в каком они были в исходном объявлении селектора.

Особое внимание я уделил особенностям реального кода CSS. CSScomb прекрасно справляется со следующим:

  • Сортировка свойств с многострочными значениями;
  • CSS-хаки (вы используете их ответственно, верно?);
  • Переопределяющие свойства — иногда случайные, иногда преднамеренные для обеспечения плавной деградации;
  • Отсутствие точки с запятой перед закрывающей скобкой (});
  • expression синтаксис для Internet Explorer;
  • datauriобъекты HTML, @rules и другие лексические конструкции CSS;
  • Почти все, с чем вы можете столкнуться в сложном проекте.

CSScomb не удаляет свойства, закомментированные в вашем коде. Вместо этого он сортирует комментарии так, как если бы они не были закомментированы (другими словами, комментарии остаются комментариями — не беспокойтесь). Делая это, CSScomb знает разницу между объявлениями и комментариями.

Вот пример нескольких закомментированных объявлений перед сортировкой:

h1 {
  background: #faf0e6;
  /* border: 2px dashed #800000;
  color: #a0522d; */
  padding: 7px;
  }

Тот же код после сортировки с помощью CSScomb будет выглядеть так:

h1 {
  padding: 7px;
  /* border: 2px dashed #800000; */
  background: #faf0e6;
  /* color: #a0522d; */
  }

Как видите, свойства по-прежнему закомментированы, но теперь они разделены и занимают свое место в соответствии с объявлением порядка сортировки.

Скажу вам честно: разработка движка для корректной обработки комментариев была настоящим мучением, и это, пожалуй, самая сложная и подверженная ошибкам фича. Так что, откровенно говоря, если комментарии представляют собой трехуровневый византийский лабиринт, пожалуйста, будьте снисходительны к результату сортировки.

Еще одна насущная проблема. Каждый хороший веб-разработчик знает принцип сортировки префиксных свойств. В объявлении порядка сортировки CSScomb по умолчанию следует за принцип перевернутой пирамиды: префиксы сортируются от самого длинного к самому короткому, за которым следует свойство без префикса.

-webkit-browser: cool;
-moz-browser: cool;
-ms-browser: cool;
-o-browser: cool;
browser: kewl;

И последнее, но не менее важное: вы можете предоставить CSScomb отдельный список свойств, целый файл CSS или <style> тег с объявлениями CSS. Возможность работать с частью файла в вашем любимом редакторе кода чрезвычайно полезна. А насчет того…

Реальный продукт, реальные планы

CSSсomb не имеет встроенного механизма парсинга CSS. Инструмент использует регулярные выражения для работы с кодом. Это решение делает утилиту компактной (около 1000 строк кода). Проект написан на чистый PHP, без каких-либо внешних библиотек или зависимостей. Я планирую перейти на JavaScript в будущей версии и после этого добавить поддержку препроцессоров CSS.

На данный момент CSScomb — это не только онлайн-демонстрация и утилита командной строки, но и отличный набор плагинов для самых популярных редакторов:

  • Sublime Text 2 (можно установить через Package Control)
  • TextMate
  • Кода
  • Кода 2
  • Эспрессо 2
  • IntelliJ ИДЕЯ
  • Вебсторм
  • PyCharm
  • Блокнот++
  • Вим

Каждый этап процесса планирования и разработки прозрачен и доступен на странице проекта на GitHub. На момент написания этой статьи CSScomb имеет версию 2.11, а следующая версия уже запланирована. Вы можете следить за новостями и обновлениями о проекте на Твиттер поток.

Если вы можете помочь разработать подключаемый модуль CSScomb для редактора, которого нет в списке выше (например, для Eclipse, Aptana Studio, UltraEdit, Komodo Edit, CSSEdit, Emacs или TopStyle), свяжитесь со мной или откройте вопрос на GitHub.

Вывод

Я надеюсь, что CSScomb поможет вам сделать ваш код немного лучше, уменьшит количество ошибок и сделает вас немного счастливее. Найдите все о проекте (включая онлайн-демонстрацию и тесты) на веб-сайте CSScomb.

Сокрушительная редакция
(аль)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — CSScomb: сортировка свойств CSS, лучший способ

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Краткое описание по статье CSScomb: сортировка свойств CSS, лучший способ

Название: CSScomb: сортировка свойств CSS, лучший способ . Краткое описание: [ad_1] ⭐ Вячесла . Дата публикации: 16.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

Кнопка «Наверх»