Учитывая этот вид HTML:
<span><img src="..." width="..." height="..." alt="..." /></span>
Вы можете использовать CSS следующим образом:
span {
position: relative;
display: block;
width: 50px; /* Change this */
height: 50px; /* Change this */
overflow: hidden;
border: 1px solid #000;
}
span img {
position: absolute;
left: -10px; /* Change this */
top: -10px; /* Change this */
}
Затем вы можете центрировать изображение на основе его точных размеров.
В качестве альтернативы, если вы можете изменить HTML, вы можете вместо этого использовать что-то вроде этого:
<div>
<a href="...">[name of picture]</a>
</div>
Затем сопоставьте это с этим CSS:
div {
width: 50px;
height: 50px;
background: transparent url(...) center center no-repeat;
border: 1px solid #000;
}
div a {
display: block;
height: 100%;
text-indent: -9999em; /* Hides the link text */
}
В этом случае фон будет автоматически центрирован независимо от его размеров, и он все равно будет активным.