Короткая запись свойств
Некоторые CSS-свойства имеют короткую запись, которая позволяет объединить несколько параметров в одной строке. Например, такой набор свойств:
font-family: Arial, sans-serif;
font-size: 20px;
line-height: 1.4;
font-weight: bold;
можно записать в одну строку:
font: bold 20px/1.4 Arial, sans-serif;
Аналогичным образом работает короткая запись отступов, такой код:
margin-top: 20px;
margin-right: auto;
margin-bottom: 35px;
margin-left: auto;
превращается в такое:
margin: 20px auto 35px;
Получается лаконичная запись, которую удобно и читать, и писать. Однако нужно понимать во что она разворачивается, и что получится, если в ней будут пропущены какие-нибудь свойства.
Например, каким будет фон в примере ниже? Он будет заполнен розовым цветом или картинкой с котом?
background-color: pink;
background: url('mycat.png');
Правильный ответ — картинка с котом, потому что при использовании короткой записи свойства, которые не были указаны, сбрасываются к значениям по умолчанию, то есть по сути браузер увидит такое:
background: transparent url('mycat.png');
Картинка с котом останется, а вот цвет пропадёт.
Если сбрасывать цвет фона не входило в ваши планы, фоновое изображение следует задать с помощью свойства background-image
:
background-color: pink;
background-image: url('mycat.png');
Аналогичная проблема может возникнуть с отступами и полями. Например:
margin-top: 50px;
margin: 0;
Если из четырех значений указано одно, все отступы будут равны друг другу, и первая строчка окажется совершенно бесполезной:
margin: 0 0 0 0;
Чтобы избежать подобных проблем, следует, во-первых, группировать свойства по смыслу, это позволит быстрее находить ошибки, а во-вторых, если вам нужно переопределить значения ранее заданных свойств, не используйте сокращённую запись.