Można to zrobić bez konieczności dodatkowego elementu lub pseudo element:
http://cssdeck.com/labs/t6nd0h9p
img {
outline: 1px solid white;
outline-offset: -4px;
}
IE9 & 10 nie obsługują własność outline-offset, ale poza tym wsparcie jest dobre: http://caniuse.com/#search=outline
Alternatywne rozwiązanie, które nie wymaga znajomości wymiarów obrazka:
http://cssdeck.com/labs/aajakwnl
<div class="ie-container"><img src="http://placekitten.com/200/200" /></div>
div.ie-container {
display: inline-block;
position: relative;
}
div.ie-container:before {
display: block;
content: '';
position: absolute;
top: 4px;
right: 4px;
bottom: 4px;
left: 4px;
border: 1px solid white;
}
img {
vertical-align: middle; /* optional */
}
Zobacz tutaj: http: // stackoverflow.com/questions/9051228/css-inner-border I działające rozwiązanie tego, co chcesz: http://jsfiddle.net/ThinkingStiff/bNmzB/ –
@EricHotinger Te odpowiedzi działają tylko z solidnym "tłem", nie wzorzec. – cimmanon
@imimmanon - czy on nie ma solidnego tła? Nie widzę żadnych wzorów. –