Um melhor alinhamento para ícones de sprite

Você pode ter visto essa técnica antes de alinhar horizontal e verticalmente um ícone …

.icon {
position
: absolute;
top
: 50%;
left
: 50%;
width
: 100px;
height
: 100px;
background
: #000;
margin
-left: -50px;
margin
-top: -50px;
}

Essa técnica é adequada, mas usa muitas propriedades que dependem da largura e da altura (ou seja, as margens negativas). Na verdade, isso pode ser evitado mudando a maneira como você o faz …

.icon {
position
: absolute;
top
: 0; right: 0; bottom: 0; left: 0;
margin
: auto;
width
: 20px;
height
: 20px;
background
: #000;
}

Esta é uma opção muito mais limpa, que permitirá abstrair as primeiras 3 linhas para todos os ícones centralizados. Ele funciona estendendo-se até as bordas, então, contanto que haja largura e altura explícitas, ele utilizará a margem automática para centralizar o conteúdo real.

Veja este exemplo se você gosta de: http://codepen.io/joecritch/full/FwftG