Хоча на це питання вже відповіли належним чином рішення з використанням властивостей box-shadow
та outline
властивостей, я хотів би трохи розширити це для всіх тих, хто приземлився тут (як я), шукаючи рішення для внутрішньої межі зі зміщенням
Отже, скажімо, у вас чорний 100px x 100px, div
і вам потрібно вставити його білою облямівкою, яка має внутрішнє зміщення 5px (скажімо) - це все одно можна зробити з вищезазначеними властивостями.
Хитрість тут полягає в тому, щоб знати, що дозволено декілька тіньових коробок, де перша тінь знаходиться зверху, а наступні тіні мають нижній z-упорядкування.
З урахуванням цих знань, поле-тіньова декларація буде:
box-shadow: inset 0 0 0 5px black, inset 0 0 0 10px white;
div {
width: 100px;
height: 100px;
background: black;
box-shadow: inset 0 0 0 5px black, inset 0 0 0 10px white;
}
<div></div>
В основному, про що йдеться в цій декларації: спочатку наведіть останню (10 пікселів білу) тінь, а потім зробіть попередню чорну тінь 5 пікселів над нею.
Для такого ж ефекту, що і вище контурних декларацій, було б:
outline: 5px solid white;
outline-offset: -10px;
div {
width: 100px;
height: 100px;
background: black;
outline: 5px solid white;
outline-offset: -10px;
}
<div></div>
Примітка: outline-offset
IE не підтримується, якщо це важливо для вас.