CSS контур и граница , к сожалению, не сильно помогут, поскольку box-shadow
на самом деле не существует и они по-прежнему будут нацелены на ограничивающий прямоугольник элемента (на который не влияет тень блока).
Вы можете использовать ::before
или ::after
, но это становится немного сложнее для того, что вы пытаетесь сделать.
Одна вещь, которую вы можете сделать, это использовать несколько коробок-теней . box-shadow
принимает список теней через запятую и поддерживается во всех основных браузерах. Хитрость здесь заключается в том, чтобы использовать 4-й (недостаточно используемый IMHO) параметр для box-shadow, который называется spread-radius
. Это будет «растягивать» (расширять) или «душить» (уменьшать) эталонную рамку тени блока на столько пикселей до радиуса размытия.
В вашем случае для 2px Широкая «граница» вокруг рамки-тени, вы можете сделать следующее:
.example-div {
width: 100px;
height: 100px;
border: 1px solid black;
box-shadow: -5px 5px red, -5px 5px 0 2px blue;
}
<div class="example-div"></div>