Возможно, это запоздалый ответ, но я хочу поделиться своими выводами. Я нашел 2 новых подхода к этой проблеме, которых я не нашел здесь в ответах:
Внутренняя граница через box-shadow
свойство css
Да, box-shadow используется для добавления box-shadows к элементам. Но вы можете указать inset
тень, которая будет выглядеть как внутренняя граница, а не как тень. Вам просто нужно установить горизонтальные и вертикальные тени 0px
и spread
свойство " " box-shadow
ширины границы, которую вы хотите иметь. Таким образом, для «внутренней» границы 10px вы должны написать следующее:
div{
width:100px;
height:100px;
background-color:yellow;
box-shadow:0px 0px 0px 10px black inset;
margin-bottom:20px;
}
Вот пример jsFiddle, который иллюстрирует разницу между box-shadow
границей и «нормальной» границей. Таким образом, ваша граница и ширина окна составляют 100 пикселей, включая границу.
Подробнее о box-shadow: здесь
Граница через свойство css
Вот другой подход, но таким образом граница будет за пределами коробки. Вот пример . Как следует из примера, вы можете использовать outline
свойство css , чтобы установить границу, которая не влияет на ширину и высоту элемента. Таким образом, ширина границы не добавляется к ширине элемента.
div{
width:100px;
height:100px;
background-color:yellow;
outline:10px solid black;
}
Подробнее о набросках: здесь