пятница, 7 февраля 2014 г.

Сокращения в CSS: пишите код компактнее

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

Статья полностью скопирована с http://zvirec.com/
попробую последовать совету автора


Начнем с мелочей:
Сокращения шестнадцатеричных кодов цвета
Как Вы знаете, каждому цвету соответствует определенный 16-ричный код. Оказывается, если все 6 знаков данного кода одинаковы, то его можно сократить до 3-х знаков. Например:
Белый → #FFFFFF → #FFFЧерный →#000000→ #000
Думаю суть понятна...

Ноль - он и в Африке ноль
Неважно, в каких единицах будет НОЛЬ! От этого его значение не изменится.
Например, вместо margin:0px; - лучше написать margin:0;
Аналогично и с другими стилевыми правилами.

Если описание класса(или id) включает менее 2-х свойств, то рациональнее записать его в одну строку
Например, вместо этого:
.test {
color:#333
}
Лучше написать так:
.test {color:#333}

По возможности группируйте стили
Если какие либо элементы имеют одинаковые свойства, не обязательно писать стиль для каждого из них. Можно просто объединить их с помощью запятой.
Например вместо этого:
.test {color:#333}
.test1 {color:#333}
лучше написать так:
.test,.test1 {color:#333}

В конце последнего свойства, можно не ставить точку с запятой
.test {
color:#333;
text-decoration:underline
}
Обратите внимание, что после свойства text-decoration:underline нет точки с запятой.

В CSS существуют ряд свойств, имеющих как полные, так и сокращенные формы записи. Давайте кратенько по ним пройдемся:

Сокращенное свойство BACKGROUND
То что записано в обычной форме
BODY {
background-color:#ffee8c ;
background-image : url(smile.png) ;
background-repeat: no-repeat;
background-attachment: fixed;
background-position: top right
}
Можно записать одной строчкой:
BODY {background: #ffee8c url(smile.png) no-repeat fixed top right }
После ключевого слова background , перечисляем через пробел значения свойств. Последовательность особого значения не имеет. Если чего-то не указать, автоматически подставится значение по умолчанию.

Сокращенное свойство BORDER
То , что записано в обычной форме
h1 {
border-width:30px;
border-style:solid;
border-color:#333;
}
Можно записать одной строчкой
h1 {border:30px solid #333}
В данном сокращении, важно строго соблюдать порядок свойств.
border-width затем через пробел border-style затем border-color .
Аналогичным образом действуют сокращения и для border-bottom, border-left, border-top, border-right.
Например:
h1 {border-left:30px solid #333}
Если какое либо свойство не указано, устанавливается значение по умолчанию.

Сокращенное свойство FONT
Полная форма
p {
font-style: italic;
font-variant: normal ;
font-weight: bold;
font-size: 30px;
font-family: arial, sans-serif
}
Сокращенная форма
p { font:italic normal bold 30px arial,sans-serif}
Как видите, после ключевого слова font , через пробел перечисляются значения свойств в таком порядке:
font-stylefont-variant _font-weight_font-size_font-family
Если какое либо свойство не указать, установится значение по умолчанию.

Сокращенное свойство LIST-STYLE
Полная форма:
ul {
list-style-type:square;
list-style-position: inside;
list-style-image: url(galka.gif)
}
Сокращенная форма:
ul {list-style:square inside url(galka.gif) }
Опять же, значения свойств перечисляются через пробел. В данном случае порядок роли не играет.

Сокращения для свойств, имеющих значения право, лево, верх, низ
У таких свойств как margin, padding и border имеются уточнения, типа справа(right), слева(left), сверху(top), снизу(bottom)...
Например:
border-left:10px;
означает рамка слева толщиной в 10 пикселей.
Либо
margin-bottom:20px;
означает отступ снизу 20 пикселей.
Так вот, если имеются четыре значения для всех сторон, например:
border-top:10px;
border-right:15px;
border-bottom:10px;
border-left:15px
то сократить эту запись можно используя перечисление значений свойств через пробел ПО ЧАСОВОЙ СТРЕЛКЕ.
border:10px 15px 10px 15px;
Если значения право/лево , либо верх/низ совпадают, то можно еще больше сократить запись:
border:10px 15px;
В данном случае, первое значение, это величина верх/низ, а второе - лево/право.
Если , все значения совпадают, то можно еще более укоротить запись.
Например:
border:10px;
означает рамку со всех сторон, толщиной 10 пикселей.

источник