Работа с константами в CSS

Любой, кто хоть немного знаком с языком программирования встречал понятие константы — фиксированного значения, которое может быть использовано в коде программы. Например, в PHP скрипте можно использовать адрес электронной почты как константу.

$admin_email = 'info@example.com';

И использовать $admin_email в своем скрипте, чтобы отправлять письма по электронной почте на указанный  адрес. Польза от этого заключается в том, что, когда указанный адреснужно заменить на другой, то для этого достаточно изменить его только в одном месте, где эта констата была объявлена. Основываясь на этом можно создавать административный модуль, где пользователи смогли бы сами указывать необходимый адрес эл. почты.

К сожалению, CSS не поддерживает константы. Было бы очень полезно иметь возможность один раз объявить константы, а затем использовать их в CSS-файле, поэтому в этой статье рассмотрим некоторые из методов. Итак, какие варианты у нас есть?

This means that you have a quick reference to the colors used in the site to avoid using alternates by mistake and, if you need to change the colors, you have a quick list to go down and do a search and replace.

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

In the below example, if I decide I want to change the mid grey to #999999, all I need to do is search and replace #666666 with #999999 – assuming I’ve remember to always use that value for things which are mid grey.

В нижеследующем примере, если нужно будет изменить в серый цвет # 999999, всем нужно сделать, это поиск и замену с # 666666 # 999999 — я себя помню, всегда использовать это значение для вещей, которые середине серый

 /*
  Dark grey (text): #333333
  Dark Blue (headings, links) #000066
  Mid Blue (header) #333399
  Light blue (top navigation) #CCCCFF
  Mid grey: #666666
  */

This is a fairly low-tech method, but if used throughout the development of the CSS files can make changes far simpler and help to ensure consistency in your color scheme.

Статья по теме:  Как сделать фиксированный виджет в сайдбаре

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

I’ve seen this method used by many designers however Garrett Dimon documents the method, with more ideas in the comments.
Going server-side

To truly achieve constants you will need to use something other than CSS to process the file before it is sent to the browser. You can use any scripting language – PHP, ASP, ColdFusion etc. to parse a CSS file in which you have entered constants. So that in a constants section of the CSS file you would have:

1. $darkgrey = ‘#333333’;
2. $darkblue = ‘#000066’;
3. Source: /code/faster-development-with-css-constants/constant2.txt

The rest of the CSS file is as normal except that when you come to use the constant value you would use the constant name instead of adding the color:

1. p {
2. color: $darkgrey;
3. }
4. Source: /code/faster-development-with-css-constants/cssrule.txt

Your server-side script could then parse the CSS file, replace the constant names with the constant values and serve a valid CSS file to the browser. Christian Heilmann has done just this for PHP however this could be adapted for any language you might have available on your server.

Shaun Inman came up with another way of doing this that removes the need to link to a PHP script and also enables the adding of constants using the syntax of at-rules . This method is again using PHP and will require you to edit an .htaccess file.

A further method is to generate static CSS files either using a script locally – if the constants are just to enable speed of development – or as part of the web application itself. Storing a template stylesheet with constant names in place of the values you will want to update means that your script can simply open the template, replace the variables and save the result as a new stylesheet file.

Статья по теме:  Почему вам стоит задуматься о статичном сайте

While CSS constants are a real help to developers, they can also be used to add new functionality to your applications. As with the email address example that I used at the beginning of this article, using a combination of CSS and server-side scripting you could enable a site administrator to select the colours for a new theme to be used on a page of a content managed site. By using constants you need only give them the option to change certain parts of the CSS and not upload a whole different CSS file, which could lead to some interesting results!

As we are unlikely to find real CSS constants under the tree this Christmas the above methods are some possibilities for better management of your stylesheets. However if you have better methods, CSS Constant horror stories or any other suggestions, add your comments below.

Источник

Переход на стороне сервера

Чтобы использование констант было возможным, придется использовать что-то помимо CSS.  Нужно обработать файл, прежде чем он будет отрендерен в браузере. Можете использовать PHP для разбора CSS файла, в котором объявлены константы.

1. darkgrey $ = ‘# 333333’;
2. darkblue $ = ‘# 000066’;
3. Источник: / code/faster-development-with-css-constants/constant2.txt

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

1. P (
2. Цвет: $ darkgrey;
3. )
4. Источник: / код / быстрого развития-с-CSS-константы / cssrule.txt

Ваш серверный скрипт можно было разобрать CSS файл, заменить постоянного имена с постоянным ценности и служить Valid CSS файл в браузере. Христианско Гайлман сделал именно это для PHP Однако это может быть адаптирована для любого языка может быть размещен на вашем сервере.

Статья по теме:  Декларация !important в CSS

Shaun Inman пришла с другой способ сделать это, что устраняет необходимость в ссылках на PHP скрипт, а также позволяет добавлять констант с использованием синтаксиса на-правил. Этот метод еще раз, используя PHP и вам потребуется изменить. Htaccess файл.

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

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

Как мы вряд ли смогут найти реальные CSS константы под деревом этого Рождества выше методы, определенные возможности для более эффективного управления вашего стиля. Однако, если у вас есть более эффективные методы, CSS Констант ужас рассказы или любые другие предложения, добавьте свои комментарии ниже.


Понравилась статья? Поделиться с друзьями:
Комментарии: 2
  1. Oleg Dizus

    Google Translate рулит?

    1. FORTRESS-DESIGN (автор)

      :)) Обычно я работаю с документом в статусе «Личное», а потом когда все готово публикую в сеть, а здесь даже не помню как так получилось. Надо, конечно исправить, но вопрос когда. Тем не менее, спасибо, за комментарий. Добавлю в список задач. Может когда-то станет актуально.

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: