Css коды: Counter-Strike Source: Коды — Читы – Руководство по оформлению HTML/CSS кода от Google / Habr

Counter-Strike: Source: Коды

Запустите игру, в главном меню, войдите в "Настройки" затем "Kлaвиaтypa", зaтeм "Дoпoлнитeльнo", и включитe oпцию "Koнcoль paзpaбoтчикa".

Bo вpeмя игpы нaжмитe клaвишy [~] (тильдa), чтобы открыть консоль, пocлe чeгo ввeдитe cлeдyющиe чит кoды:

sv_cheats 1 - для aктивaции чит peжимa.

Impulse 101 - вce opyжиe и пaтpoны.
Impulse 203 - yдaлить пpeдмeт
Notarget - вpaги вac нe видят и нe нaпaдaют.
Killserver - oтключить cepвep
sv_gravity #чиcлo# - измeнить гpaвитaцию (пo yмoлчaниe 800.)
Noclip - xoдить cквoзь cтeны.
bot_add - дoбaвить бoтa
bot_add_ct - дoбaвить бoтa зa CT
bot_add_t - дoбaвить бoтa зa T
bot_all_weapons - paзpeшить бoтaм иcпoльзoвaть вce opyжиe
bot_allow_grenades 0/1 - зaпpeтить/paзpeшить бoтaм иcпoльзoвaть гpaнaты
bot_allow_machine_guns 0/1 - зaпpeтить/paзpeшить бoтaм иcпoльзoвaть aвтoмaты
bot_allow_pistols 0/1 - зaпpeтить/paзpeшить бoтaм иcпoльзoвaть пиcтoлeты
bot_allow_rifles 0/1 - зaпpeтить/paзpeшить бoтaм иcпoльзoвaть винтoвки

bot_allow_shield 0/1 - зaпpeтить/paзpeшить бoтaм иcпoльзoвaть щиты
bot_allow_shotguns 0/1 - зaпpeтить/paзpeшить бoтaм иcпoльзoвaть pyжья
bot_allow_snipers 0/1 - зaпpeтить/paзpeшить бoтaм иcпoльзoвaть cнaйпepcкoe opyжиe
bot_auto_vacate #чиcлo# - кoличecтвo зapeзepвиpoвaнныx мecт для людeй
bot_chatter normal/radio - тип cooбщeний кoтopый бyдeт иcпoльзoвaтьcя бoтaми (normal/radio)
bot_debug 0/1 - включить/выключить вcтpoeнный oтлaдчик
bot_difficulty #чиcлo# - ypoвeнь мacтepcтвa бoтoв (0, 1, 2 или 3)
bot_freeze #чиcлo# - вpeмя пpocтoя бoтoв пocлe нaчaлa payндa
bot_join_after_player 0/1 - peжим oжидaния бoтaми людeй нa cepвepe.
bot_kick - кикнyть (пнyть) бoтa c ceвepa
bot_kill - yбить вcex бoтoв нa cepвepe
bot_knives_only - зacтaвить вcex бoтoв пoльзoвaтьcя тoлькo нoжaми
bot_mimic 0/1 - включeниe мимики y бoтoв
bot_pistols_only - вce бoты пoльзyютcя тoлькo пиcтoлeтaми
bot_snipers_only - вce бoты пoльзyютcя тoлькo cнaйпepcким opyжиeм
bot_crouch 1 - бoты вceгдa нa кopтoчкax
bot_defer_to_human 1
- бoты зaщищaют людeй
bot_join_team 1 - бoты зaxoдят в кoмaнды (т,кт) тoлькo пocлe чeлoвeкa

Коды к игре Counter-Strike: Source

Для активации чит-кодов откройте консоль [~], введите sv_cheats 1 и restart (перезагрузить карту), после чего вы сможете применять следующие читы для Counter-Strike: Source:

impulse 101 – получить $16 000
cl_backspeed # – скорость игрока назад (не более чем значение на сервере; по умолчанию: 400)
cl_forwardspeed # – установить скорость перемещения вперед
cl_observercrosshair 1/0 – вкл./выкл. прицел в режиме обсервера
cl_showfps 1/0 – показать/скрыть счетчик FPS
fps_max # – задать # как максимальное отображаемое количество FPS
cl_sidespeed # – установить скорость перемещения в стороны
cl_upspeed # – скорость перемещения вверх
hud_deathnotice_time # – показывать сообщения об убийствах # сек.
hud_fastswitch 1/0 – вкл./выкл. быстрое переключение оружия (не показывая списка)
hud_saytext_time # – показывать сообщения других игроков # сек.
name «…» – задать новое имя для своего игрока
nightvision 1/0 – вкл./выкл. возможность использования прибора ночного видения

setinfo ah 1/0 – вкл./выкл. помощь в прицеливании
setinfo dm 1/0 – вкл./выкл. показ информации показывать информацию о карте после загрузки
setinfo lefthand # – показывать оружие: 0- в правой руке, 1- левой
sv_gravity # – изменить уровень гравитации (по умолчанию: 800)
violence_ablood 1/0 – показать/скрыть кровь
mp_friendlyfire 1/0 – вкл./выкл. огонь по своим
mp_autoteambalance – 1/0 вкл./выкл. автоматическую балансировку команд
mp_limitteams # – максимальная разница в количестве игроков между командами при котором не будет применяться автоматическая балансировка; 0- отключить
mp_logmessages 1/0 – вык./выкл. запись сообщений чата log-файл
mp_roundtime # – длительность раунда в минутах (от 3 до 15; по умолчанию: 5)
mp_timelimit # – количество минут между сменами карты
mp_freezetime # – время в секундах для покупки оружия
mp_restartround # – перезапустить раунд через # сек.
mp_c4timer # – количество секунд до детонации заложенной бомбы
mp_flashlight 1/0 – вкл./выкл. возможность использовать фонарик
mp_startmoney # – количество денег в начале игры
mp_tkpunish 1/0 – вкл./выкл. автобан игрока на один раунд за убийство своих
hostname «имя сервера» – задать новое имя сервера
sv_maxspeed # – задать скорость передвижения
kick имя_пользователя – выкинуть игрока из игры
сhangelevel название_карты – загрузить указанную карту; все игроки остаются
map название_карты – загрузить указанную карту; все игроки отсоединяются от сервера
timeleft – показать оставшееся время
crosshair # – выключить увеличение прицела во время стрельбы, где # число от 1 до 5
mp_footsteps 1/0 – вкл./выкл. следы
give name – получить указанный предмет (список названий ниже)
skin name – получить указанный скин (список названий ниже)

Команды для ботов

bot_add – добавить бота
bot_add_ct – добавить бота в команду контртеррористов
bot_add_t – добавить бота в команду террористов
bot_join_team ct – боты присоединяются только за команду контртеррористов
bot_join_team t – боты присоединяются только за команду террористов
bot_kill – убить всех ботов или определенного бота (вводите его имя)
bot_kick – удалить из игры всех ботов или определенного бота (вводите его имя)
bot_quota # – общее количество ботов, где # число от 1 до 32

bot_knives_only 1 – боты играют только на ножах
bot_pistols_only 1 – боты используют только пистолеты
bot_snipers_only 1 – боты используют только снайперские винтовки
bot_all_weapons – все оружие
bot_allow_grenades 1 – гранаты
bot_allow_machine_guns 1 – автоматы
bot_allow_pistols 1 – пистолеты
bot_allow_rifles 1 – винтовки
bot_allow_shotguns 1 – дробовики
bot_allow_snipers 1 – снайперские винтовки
bot_allow_sub_machine_guns 1 – пулеметы
bot_zombie 1 – боты бездействуют
bot_chatter off (minimal, radio, normal) – установить степень болтливости бота
bot_defer_to_human 0 – боты пытаются выполнить цель игры
bot_stop 1 – заморозить ботов
bot_memory_usage – отображает (в консоли) количество используемой для ботов памяти
bot_show_nav – отображает границы навигационной сети
nav_mark – отметить текущую навигационную зону для дальнейшего использования
nav_save – сохранить текущую навигационную сеть
nav_load – загрузить навигационную сеть

Оружие

Пример: give weapon_ak47 – получить автомат АК-47. В некоторых версиях код оружия необходимо записывать в кавычках:

«weapon_ak47″

  • weapon_ak47 – AK-47
  • weapon_xm1014 – Benneli xm1014
  • weapon_c4 – C4
  • weapon_m4a1 – Colt M4a1 carbine
  • weapon_sg552 – Commando
  • weapon_elite – Dual Berettas
  • weapon_p90 – Fn P90
  • weapon_glock18 – Glock 18 pistol
  • weapon_hegrenade – граната
  • weapon_m3 – M3 super shotgun
  • weapon_mac_10 – MAC-10
  • weapon_mp5navy – MP5
  • weapon_m249 – Para
  • weapon_scout – Scout
  • weapon_p228 – SIG p228
  • weapon_aug – Steyr Aug
  • weapon_g3sg1 – H&K Sniper Rifle
  • weapon_deagle – Desert eagle
  • weapon_flashbang – ocлeпляющая гpaнaтa
  • weapon_defuser – Bomb defuser
  • weapon_smokegrenade – дымовая гpaнaтa
  • weapon_kevlar – бpoнeжилeт
  • weapon_nightvision – нoчное видeниe
  • weapon_sig550 – Sig 550
  • weapon_awp – Artic
  • weapon_ump45 – UMP.45
  • weapon_usp – USP.45

Скины

Пример: skin «sas» – получить скин SAS бойца

  • sas – SAS
  • gsg9 – GSG9
  • seal – SEAL
  • terror – Terrorist
  • arab – Arab
  • guerrilla – Guerrilla
  • arctic – Arctic
  • vip – VIP
  • hostage – Hostage

cl_crosshairscale 40000 – уменьшить размер прицела

Эти читы работают только на ВАШЕМ сервере, кроме команды cl_crosshairscale 40000, которая работает на всех серверах к которым вы подсоединяетесь.

Бинд читов на клавиши (быстрое использование кодов)
Чтобы быстро применить какой-то чит и при этом каждый раз не открывать консоль введите следующий код в консоли CS: Source:
bind клавиша «чит-код» – теперь после каждого нажатия указанной вами клавиши будет применятьсячит-код. Разумеется, вместо чит-код необходимо ввести один из читов вверху.

Надеемся что коды к игре Counter-Strike: Source помогли Вам!

Коды (читы) Counter-Strike: Source (CS)

Для активации чит-кодов откройте консоль [~], введите sv_cheats 1 и restart (перезагрузить карту), после чего вы сможете применять следующие читы для Counter-Strike: Source:

impulse 101 - получить $16 000
cl_backspeed # - скорость игрока назад (не более чем значение на сервере; по умолчанию: 400)
cl_forwardspeed # - установить скорость перемещения вперед
cl_observercrosshair 1/0 - вкл./выкл. прицел в режиме обсервера
cl_showfps 1/0 - показать/скрыть счетчик FPS
fps_max # - задать # как максимальное отображаемое количество FPS
cl_sidespeed # - установить скорость перемещения в стороны
cl_upspeed # - скорость перемещения вверх
hud_deathnotice_time # - показывать сообщения об убийствах # сек.
hud_fastswitch 1/0 - вкл./выкл. быстрое переключение оружия (не показывая списка)
hud_saytext_time # - показывать сообщения других игроков # сек.
name "..." - задать новое имя для своего игрока
nightvision 1/0 - вкл./выкл. возможность использования прибора ночного видения
setinfo ah 1/0 - вкл./выкл. помощь в прицеливании
setinfo dm 1/0 - вкл./выкл. показ информации показывать информацию о карте после загрузки
setinfo lefthand # - показывать оружие: 0- в правой руке, 1- левой
sv_gravity # - изменить уровень гравитации (по умолчанию: 800)
violence_ablood 1/0 - показать/скрыть кровь
mp_friendlyfire 1/0 - вкл./выкл. огонь по своим
mp_autoteambalance - 1/0 вкл./выкл. автоматическую балансировку команд
mp_limitteams # - максимальная разница в количестве игроков между командами при котором не будет применяться автоматическая балансировка; 0- отключить
mp_logmessages 1/0 - вык./выкл. запись сообщений чата log-файл
mp_roundtime # - длительность раунда в минутах (от 3 до 15; по умолчанию: 5)
mp_timelimit # - количество минут между сменами карты
mp_freezetime # - время в секундах для покупки оружия
mp_restartround # - перезапустить раунд через # сек.
mp_c4timer # - количество секунд до детонации заложенной бомбы
mp_flashlight 1/0 - вкл./выкл. возможность использовать фонарик
mp_startmoney # - количество денег в начале игры
mp_tkpunish 1/0 - вкл./выкл. автобан игрока на один раунд за убийство своих
hostname "имя сервера" - задать новое имя сервера
sv_maxspeed # - задать скорость передвижения
kick имя_пользователя - выкинуть игрока из игры
сhangelevel название_карты - загрузить указанную карту; все игроки остаются
map название_карты - загрузить указанную карту; все игроки отсоединяются от сервера
timeleft - показать оставшееся время
crosshair # - выключить увеличение прицела во время стрельбы, где # число от 1 до 5
mp_footsteps 1/0 - вкл./выкл. следы
give name - получить указанный предмет (список названий ниже)
skin name - получить указанный скин (список названий ниже)

Команды для ботов

bot_add - добавить бота
bot_add_ct - добавить бота в команду контртеррористов
bot_add_t - добавить бота в команду террористов
bot_join_team ct - боты присоединяются только за команду контртеррористов
bot_join_team t - боты присоединяются только за команду террористов
bot_kill - убить всех ботов или определенного бота (вводите его имя)
bot_kick - удалить из игры всех ботов или определенного бота (вводите его имя)
bot_quota # - общее количество ботов, где # число от 1 до 32
bot_knives_only 1 - боты играют только на ножах
bot_pistols_only 1 - боты используют только пистолеты
bot_snipers_only 1 - боты используют только снайперские винтовки
bot_all_weapons - все оружие
bot_allow_grenades 1 - гранаты
bot_allow_machine_guns 1 - автоматы
bot_allow_pistols 1 - пистолеты
bot_allow_rifles 1 - винтовки
bot_allow_shotguns 1 - дробовики
bot_allow_snipers 1 - снайперские винтовки
bot_allow_sub_machine_guns 1 - пулеметы
bot_zombie 1 - боты бездействуют
bot_chatter off (minimal, radio, normal) - установить степень болтливости бота
bot_defer_to_human 0 - боты пытаются выполнить цель игры
bot_stop 1 - заморозить ботов
bot_memory_usage - отображает (в консоли) количество используемой для ботов памяти
bot_show_nav - отображает границы навигационной сети
nav_mark - отметить текущую навигационную зону для дальнейшего использования
nav_save - сохранить текущую навигационную сеть
nav_load - загрузить навигационную сеть

Оружие

Пример: give weapon_ak47 - получить автомат АК-47. В некоторых версиях код оружия необходимо записывать в кавычках: "weapon_ak47"
  • weapon_ak47 - AK-47
  • weapon_xm1014 - Benneli xm1014
  • weapon_c4 - C4
  • weapon_m4a1 - Colt M4a1 carbine
  • weapon_sg552 - Commando
  • weapon_elite - Dual Berettas
  • weapon_p90 - Fn P90
  • weapon_glock18 - Glock 18 pistol
  • weapon_hegrenade - граната
  • weapon_m3 - M3 super shotgun
  • weapon_mac_10 - MAC-10
  • weapon_mp5navy - MP5
  • weapon_m249 - Para
  • weapon_scout - Scout
  • weapon_p228 - SIG p228
  • weapon_aug - Steyr Aug
  • weapon_g3sg1 - H&K Sniper Rifle
  • weapon_deagle - Desert eagle
  • weapon_flashbang - ocлeпляющая гpaнaтa
  • weapon_defuser - Bomb defuser
  • weapon_smokegrenade - дымовая гpaнaтa
  • weapon_kevlar - бpoнeжилeт
  • weapon_nightvision - нoчное видeниe
  • weapon_sig550 - Sig 550
  • weapon_awp - Artic
  • weapon_ump45 - UMP.45
  • weapon_usp - USP.45

Скины

Пример: skin "sas" - получить скин SAS бойца
  • sas - SAS
  • gsg9 - GSG9
  • seal - SEAL
  • terror - Terrorist
  • arab - Arab
  • guerrilla - Guerrilla
  • arctic - Arctic
  • vip - VIP
  • hostage - Hostage
cl_crosshairscale 40000 - уменьшить размер прицела

Эти читы работают только на ВАШЕМ сервере, кроме команды cl_crosshairscale 40000, которая работает на всех серверах к которым вы подсоединяетесь.

Бинд читов на горячие клавиши

Чтобы быстро применить какой-то чит и при этом каждый раз не открывать консоль введите следующий код в консоли CS: Source:
bind клавиша "чит-код" - теперь после каждого нажатия указанной вами клавиши будет применяться чит-код. Разумеется, вместо чит-код необходимо ввести один из читов вверху.

Простой CSS • Стиль кода

Порядок и группировка свойств #

Свойства следует группировать по смыслу, и вот почему это важно:

  • Плохо

    .block {
      margin-bottom: 50px;
      padding: 20px;
      vertical-align: middle;
      color: teal;
      line-height: 30px;
      display: inline-block;
      margin: 20px auto;
      font: 16px/1.4 Arial,sans-serif;
      float: left;
      position: relative;
    }
  • Хорошо

    .block {
      display: inline-block;  /* 💥 */
      float: left;
      position: relative;
      margin-bottom: 50px;    /* 💥 */
      margin: 20px auto;
      padding: 20px;
      vertical-align: middle; /* 💥 */
      line-height: 30px;      /* 💥 */
      font: 16px/1.4 Arial,sans-serif;
      color: teal;
    }

Если взять код слева и расставить в нём свойства по порядку (пример справа), сразу обнаруживается куча ошибок: display: inline-block не будет работать с float: left, потому что в этом случае элемент становится блочным. По этой же причине не будет работать vertical-align. margin-bottom не сработает, потому что ниже перезаписывается сокращенной записью свойства margin. line-height не работает, потому что перезапишется короткой записью font.

Достаточно сгрупировать свойства по смыслу, чтобы эти ошибки стали видны как на ладони, поэтому старайтесь всегда придерживаться определённого порядка свойств.

Порядок свойств можно подглядеть у HTML-Академии. Для сортировки можно использовать CSScomb, но лучше просто привыкнуть записывать свойства в определённой последовательности.

Оформление кода #

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

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

  • Плохо

    .block {
      padding: 20px;
      font: 16px/1.4 Arial, sans-serif;
       color: teal;
    }
  • Хорошо

    .block {
      padding: 20px;
      font: 16px/1.4 Arial, sans-serif;
      color: teal;
    }

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

  • Плохо

    .block{
      padding:20px;
      font:16px/1.4 Arial,sans-serif;
      color: teal;
    }
  • Хорошо

    .block {
      padding: 20px;
      font: 16px/1.4 Arial, sans-serif;
      color: teal;
    }

Для проверки форматирования кода можно использовать stylelint.

Написание эффективного кода | htmlbook.ru

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

Размещайте каскадные таблицы стилей в отдельном файле

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

Удаляйте неиспользуемые селекторы

Большое количество селекторов создаёт путаницу в вопросе о том, кто из них за что отвечает, да и просто увеличивает объем документа. Чтобы этого не произошло, удаляйте селекторы, которые никак не применяются на сайте. К сожалению, определить точно, какой селектор используется, а какой нет, довольно сложно, поэтому добавляйте комментарий в код. Это поможет хотя бы не запутаться в большом объёме текста.

Применяйте группирование

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

Используйте универсальные свойства

Вместо того чтобы указывать значения отступа на каждой стороне элемента через свойства margin-left, margin-right, margin-top и margin-bottom, это можно одновременно задать через универсальное свойство margin. Перечисление значений через пробел позволяет установить индивидуальные отступы для каждой стороны. Кроме margin к универсальным свойствам относятся background, border, font, padding. Применение этих свойств сокращает объём кода и повышает его читабельность.

Форматирование кода

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

Ссылка на сайт
http://www.cssportal.com/format-css/

Принцип работы очень простой, вводите в текстовое поле свой код, нажимаете на кнопку «Format Code» и получаете четыре разных вида первоначального кода. Для примера возьмём следующий небольшой фрагмент.

body {
 font: 0.9em Arial, Verdana, Helvetica, sans-serif;
 color: #000;
 background: #fff;
 margin: 0;
}
.top {
 margin-bottom: 10px;
 padding-left: 3%;
 border-bottom: 1px solid #acacac;
}

В результате его форматирования получатся такие варианты.

Форматированный CSS (Formatted CSS)

body {
    font: 0.9em Arial, Verdana, Helvetica, sans-serif;
    color: #000;
    background: #fff;
    margin: 0;
}

.top {
    margin-bottom: 10px;
    padding-left: 3%;
    border-bottom: 1px solid #acacac;
}

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

Свойства в алфавитном порядке (Properties in Alphabetical Order)

body {
    background: #fff;
    color: #000;
    font: 0.9em Arial, Verdana, Helvetica, sans-serif;
    margin: 0;
}

.top {
    border-bottom: 1px solid #acacac;
    margin-bottom: 10px;
    padding-left: 3%;
}

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

Лесенкой (Longest Property to Shortest)

body {
    font: 0.9em Arial, Verdana, Helvetica, sans-serif;
    background: #fff;
    color: #000;
    margin: 0;
}

.top {
    border-bottom: 1px solid #acacac;
    margin-bottom: 10px;
    padding-left: 3%;
}

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

Компактно (Compact)

body {font: 0.9em Arial, Verdana, Helvetica, sans-serif;color: #000;background: #fff;margin: 0;}
.top {margin-bottom: 10px;padding-left: 3%;border-bottom: 1px solid #acacac;}

Селекторы и свойства записываются в одну строку, пустые строки удаляются.

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

Минимизация кода

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

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

CSSMin

http://tools.w3clubs.com/cssmin/

Простой, даже можно сказать, примитивный сервис, построенный на JavaScript и библиотеке YUI Compressor. Вводите в поле «Source» код CSS, нажимаете кнопку «Crunch» и получаете готовый результат в соседнем поле. Также даётся оценка входного и выходного объёма и соотношение в процентах между ними (рис. 22.1).

Рис. 22.1. Итог минимизации кода

CSS compressor

http://www.csscompressor.com

Этот сервис удобен тем, что комментирует все свои действия, так что вы будете в курсе изменений вашего стиля. Работает он следующим образом. В поле CSS Input вставляете код CSS, выбираете желаемые настройки и нажимаете кнопку «Compress» (рис. 22.2).

Рис. 22.2. Интерфейс

Настройки следующие.

  • Compression Mode — режим сжатия. Различается четырьмя видами.
    • Highest — все правила записываются в одну строку.
    • High — каждое правило записывается на своей строке.
    • Standard — каждое свойство пишется на отдельной строке,
    • Low — каждое свойство пишется на отдельной строке и отбивается табуляцией.
  • Sort Properties  — сортировка стилевых свойств в алфавитном порядке.
  • Compress colors  — цвета вида #ffffff заменяются сокращённой формой #fff.
  • Compress font-weight  — оптимизируется насыщенность шрифта. Такое значение font-weight как normal заменяется на 400, а bold на 700.
  • Lowercase selectors  — все селекторы записываются в нижнем регистре.
  • Remove unnecessary backslashes  — ненужные слэши (\) удаляются.
  • Remove unnecessary semi-colons  — удалить необязательную точку с запятой в последнем свойстве.

После сжатия выводятся два поля: список сделанных изменений в свойствах и сжатый CSS (рис. 22.3).

Рис. 22.3. Результат использования

CSS Code Formatter and Optimizer

http://www.generateit.net/css-optimize

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

На рис. 22.4 показано окно настроек.

Рис. 22.4. Настройки

  • Preserve CSS — сохраняет все комментарии, хаки и др. При включении этой настройки некоторые опции становятся недоступными.
  • Sort Selectors (caution)  — сортировать селекторы по алфавиту.
  • Sort Properties  — сортировать свойства по алфавиту.
  • Regroup selectors — позволяет перегруппировать селекторы, например, разделить или объединить их.
  • Optimize shorthands — оптимизирует универсальные свойства вроде margin.
  • Compress colors  — цвета вида #ffffff заменяются сокращённой формой #fff.
  • Compress font-weight  — оптимизируется насыщенность шрифта. Такое значение font-weight как normal заменяется на 400, а bold на 700.
  • Lowercase selectors  — все селекторы записываются в нижнем регистре.
  • Case for properties — стилевые свойства пишутся в нижнем или верхнем регистре.
  • Remove unnecessary backslashes  — удалить ненужные слэши (\).
  • Remove last ;  — удалить необязательную точку с запятой в последнем свойстве.
  • Discard invalid properties — удалить свойства, которых нет в указанной спецификации.
  • Add timestamp  — включить в код текущую дату и время.
  • Output as file — сохранить результат в виде файла.

Библиотека minify

Если приходится часто вносить изменения в CSS-файл, то процесс минимизации становится неудобным. Сами посудите, вначале надо отредактировать файл, затем его минимизировать и полученный код сохранить в файл, который нужно залить на сервер. Слишком много действий приходится совершать ради одного изменения. Логичнее было бы возложить задачу минимизации на сайт. Загрузили файл на сервер, и вот он уже в компактном виде отдаётся посетителям. Одно из таких универсальных решений называется minify, это библиотека на PHP5. Она минимизирует, объединяет и кэширует CSS-файлы, а также JavaScript.

Ссылка на проект minify
http://code.google.com/p/minify/

Библиотека minify существует как отдельно, так и в виде плагина для WordPress.

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

http://example.ru/min/?f=themes/default/style.css

В параметре f указывается путь к CSS-файлу относительно корня сайта. Два и более файла пишутся через запятую:

http://example.ru/min/?f=themes/default/style.css,themes/default/cms.css

Также процесс получения адреса можно автоматизировать, перейдя по адресу http://example.ru/min, откроется страница, где предлагается указать путь к файлам, которые вы желаете минимизировать (рис. 22.5).

Рис. 22.5. Страница для управления файлами

Кнопки со стрелками вверх и вниз нужны для изменения порядка файлов, а кнопка «x» для удаления файла из списка. Проверка правильности пути осуществляется автоматически, в случае ошибки появится кнопка с надписью «404!», как показано на рисунке выше. Для добавления еще одного файла в список служит кнопка «Add file». После того, как все файлы указаны, пути к ним заданы корректно, что подтверждается наличием галочки напротив каждого файла, можно нажать кнопку «Update». Ниже на странице появится ссылка на новый комбинированный файл (текст с надписью URI) и тег <link> (текст с надписью HTML), который требуется вставить себе на страницу взамен старого (рис. 22.6).

Рис. 22.6. Результат минимизации

Согласно тестам над WordPress использование библиотеки позволяет сократить количество HTTP-запросов и уменьшить объем CSS и JavaScript-файлов до 70%.

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

Улучшаем читабельность CSS-кода с помощью «стилевых гидов» / Habr

В W3Cast #3 Денис ( CurlyBrace) затронул тему использования styleguides, а у меня как раз уже была статья по этой теме. Поэтому я решил поделиться ей, чтобы показать наглядные примеры, демонстрирующих возможности «стилевых гидов».
«Стилевые гиды» — это свод правил и соглашений, предоставляющих разработчикам информацию о структуре кода и принятых правилах оформления. Чаще всего используется группой разработчиков, при совместном участии в проекте или же для самодисциплины при разработке кода.
Если проект большой, то он обрастает многочисленными файлами CSS с различными цветовыми схемами, типографикой и другими стилевыми установками. Чтобы избежать путаницы в структуре кода и не забыть что да как, нужно разрабатывать структурированный код, который впоследствии будет проще использовать, править и частично использовать в других проектах.

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

«Разделяй и властвуй»


Для начала проанализируйте структуру своего макета и выделите наиболее важные компоненты в CSS-коде. В большинстве случаев полезно рассортировать по принадлежности к классам или CSS-селекторам. Перед тем как начать «кодинг», объедините элементы в группы. Например, вы можете выделить глобальные стили («тело», параграфы, списки и т.д.), структуру, заголовки, текстовые стили, навигацию, формы, комментарии и отдельные элементы.
Выберите специальные метки (например, «звёздочку» — «*» или минус — «-») для того чтобы выделять важные элементы. Например ими можно выделять заголовки отдельх групп элементов. Очень немаловажно, чтобы метки бросались в глаза при беглом просмотре кода.
Однако такой подход может оказаться не очень эффективным для больших проектов, где главная стилевая таблица является достаточно большой. В таком случае стили можно разделить на несколько файлов, каждый из которых будет содержать единственную группу. Для этого в основном файле стилей достаточно импортировать групповые стили. А на странице достаточно включать только основной файл.

<code>
/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Master StyleSheet]

Project:	Obout.ru
Version:	1.1
Last change:	05/06/08 [fixed Float bug, Alex]
Assigned to:	Alexandr (ALex), Vasy Pupkin (VP)
Primary use:	OBOUT.RU
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
@import "reset.css";
@import "layout.css";
@import "colors.css";
@import "typography.css";
@import "flash.css";
/* @import "debugging.css"; */
</code>

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

Создание оглавления


Для описания структуры своего кода, можно сделать небольшое оглавление в начале стилевого файла. Этот прием поможет сделать краткий обзор структуры расположения элементов с использованием идентификаторов (ID) и классов (class) используемых в качестве отдельных веток структурного дерева страницы. Тутже можно использовать специальные ключевые слова для более быстрого поиска нужной секции в коде.
Например так:

<code>
/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Layout]

* body
	+ Header / #header
	+ Content / #content
		- Left column / #leftcolumn
		- Right column / #rightcolumn
		- Sidebar / #sidebar
			- RSS / #rss
			- Search / #search
			- Boxes / .box
			- Sideblog / #sideblog
	+ Footer / #footer

Navigation	  #navbar
Advertisements	  .ads
Content header	  h3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
</code>

или же такой вариант которого я придерживаюсь:

<code>
/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Table of contents]

1. Body
	2. Header / #header
		2.1. Navigation / #navbar
	3. Content / #content
		3.1. Left column / #leftcolumn
		3.2. Right column / #rightcolumn
		3.3. Sidebar / #sidebar
			3.3.1. RSS / #rss
			3.3.2. Search / #search
			3.3.3. Boxes / .box
			3.3.4. Sideblog / #sideblog
			3.3.5. Advertisements / .ads
	4. Footer / #footer
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
</code>

Он позволяет осуществлять поиск по индексам и даёт схематическое представление о структуре страницы.
Есть ещё более простой способ который не использует вложенности, а использует обычный нумерованный список. Чтобы найти блок в стилевой таблице достаточно использовать файловый поиск и ввести цифру или название блока. Такой способ очень лёгок, быстр и эффективен.

<code>
/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Table of contents]

1. Body
2. Header / #header
3. Navigation / #navbar
4. Content / #content
5. Left column / #leftcolumn
6. Right column / #rightcolumn
7. Sidebar / #sidebar
8. RSS / #rss
9. Search / #search
10. Boxes / .box
11. Sideblog / #sideblog
12. Advertisements / .ads
13. Footer / #footer
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
<!-- здесь много CSS-кода -->

/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[8. RSS / #rss]
*/
#rss { ... }
#rss img { ... }
/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
</code>

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

Предустановка цветовой схемы и типографики


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

<code>
/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# [Color codes]

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

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

<code>
/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Color codes]

Background:	#ffffff (white)
Content:	#1e1e1e (light black)
Header h2:	#9caa3b (green)
Header h3:	#ee4117 (red)
Footer:		#b5cede (dark black)

a (standard):	#0040b6 (dark blue)
a (visited):	#5999de (light blue)
a (active):	#cc0000 (pink)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
</code>

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

<code>
/*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Typography]

Body copy:		1.2em/1.6em Verdana, Helvetica, Arial, Geneva, sans-serif;
Headers:		2.7em/1.3em Helvetica, Arial, "Lucida Sans Unicode", Verdana, sans-serif;
Input, textarea:	1.1em Helvetica, Verdana, Geneva, Arial, sans-serif;
Sidebar heading:	1.5em Helvetica, Trebuchet MS, Arial, sans-serif;

Notes:	decreasing heading by 0.4em with every subsequent heading level
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
</code>

Сортировка CSS свойств


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

<code>
    body,
	h2, h3, h4,
	p, ul, li,
	form {
		border: 0;
		margin: 0;
		padding: 0;
	}
</code>

Некоторые разработчики предпочитают сортирование свойства в алфавитном порядке:

<code>
body {
	background: #fdfdfd;
	color: #333;
	font-size: 1em;
	line-height: 1.4;
	margin: 0;
	padding: 0;
}
</code>

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

Вложенность — ваш друг!


Использование табулировани селекторов сделает понимание кода более простым. Чем более «глубокий» элемент — тем большее количество табов ставится перед ним. Определите «родительский» элемент и отделите «дочерние» нужным количеством «табов»:

<code>
#main-column { display: inline; float: left; width: 30em; }
		#main-column h2 { font-family: Georgia, "Times New Roman"; margin-bottom: 20px; }
		#main-column p { color: #333; }
</code>

Есть ещё один интересный подход киспользованию «табов» и комментариев. Иногда при внесении изменений результат оказывается не таким как вы ожидали. А что если изменений было сделано много и все их не запомнить? Вот тут то и может нам пригодиться выделение недавних изменений в вашем CSS-коде. Внесенные изменения можно помечать дополнительным отступом, который будет выделять свойство от других в этом же селекторе. Или же можно использовать некоторые ключевые слова в комментариях. Например @new, которое можно лекго найти и откатить внесенные изменения назад, до тех пор пока не найдете проблему.

<code>
#sidebar ul li a {
     display: block;
     background-color: #ccc;
          border-bottom: 1px solid #999; /* @new */
     margin: 3px 0 3px 0;
          padding: 3px; /* @new */
}
</code>

Заключение


«Стилевые гиды» CSS могут быть полезны, если их использовать надлежащим образом. Не используйте «стилевые гиды», если они не позволяют вам получить лучшее понимание кода и лучшей структурированности кода. Ваша цель — достичь лучшей понимаемости/удобочитаемости кода.
PS. Не забывайте, что финальная версия ( или как говорят «продакшен») не должна содержать комментариев «стилевого гида», чтобы не нагружать пользователей передачей лишьнего объема данных. А у разработчика всё-таки должна быть полная версия и после завершения разработки.
Вольный перевод© по мотивам Improving Code Readability With CSS Styleguides
PPS. Спасибо всем кто поднял карму, перенёс в тематический блог.
UPD.В комментариях vithar поделился своим CSS Code Style.
Предлагаю и остальным включаться и делиться своими наработками.

UPD. В комментариях уже профодил аналогию с phpdoc и вот наткнулся на начало реализации общего стандарта cssdoc — аналог phpdoc но уже для css. Развитие проекта поможет выработать более или менее единые стандарты при разработке css.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *