Provavelmente é uma resposta tardia, mas quero compartilhar com minhas descobertas. Encontrei 2 novas abordagens para esse problema que não encontrei aqui nas respostas:
Borda interna através box-shadow
propriedade css
Sim, sombra de caixa é usada para adicionar sombras de caixa aos elementos. Mas você pode especificar a inset
sombra, que pareceria uma borda interna e sim uma sombra. Você só precisa definir sombras horizontais e verticais para 0px
, e a spread
propriedade " " box-shadow
da largura da borda que você deseja ter. Portanto, para a borda 'interna' de 10 px, você deve escrever o seguinte:
div{
width:100px;
height:100px;
background-color:yellow;
box-shadow:0px 0px 0px 10px black inset;
margin-bottom:20px;
}
Aqui está o exemplo do jsFiddle que ilustra a diferença entre a box-shadow
borda e a borda 'normal'. Dessa forma, sua borda e a largura da caixa são de 100px, incluindo a borda.
Mais sobre box-shadow: aqui
Borda através da propriedade CSS de estrutura de tópicos
Aqui está outra abordagem, mas dessa maneira a borda estaria fora da caixa. Aqui está um exemplo . Como segue do exemplo, você pode usar a outline
propriedade css para definir a borda que não afeta a largura e a altura do elemento. Dessa forma, a largura da borda não é adicionada à largura de um elemento.
div{
width:100px;
height:100px;
background-color:yellow;
outline:10px solid black;
}
Mais sobre o esboço: aqui