Có lẽ đó là câu trả lời muộn màng, nhưng tôi muốn chia sẻ với những phát hiện của tôi. Tôi đã tìm thấy 2 cách tiếp cận mới cho vấn đề này mà tôi chưa tìm thấy ở đây trong các câu trả lời:
Biên giới bên trong thông qua box-shadow
tài sản css
Có, bóng hộp được sử dụng để thêm bóng hộp cho các thành phần. Nhưng bạn có thể chỉ định inset
bóng, nó sẽ trông giống như một đường viền bên trong chứ không giống như một cái bóng. Bạn chỉ cần đặt bóng ngang và dọc thành 0px
và thuộc tính " spread
" của box-shadow
chiều rộng của đường viền bạn muốn có. Vì vậy, đối với đường viền 'bên trong' là 10px, bạn sẽ viết như sau:
div{
width:100px;
height:100px;
background-color:yellow;
box-shadow:0px 0px 0px 10px black inset;
margin-bottom:20px;
}
Dưới đây là ví dụ jsFiddle minh họa sự khác biệt giữa box-shadow
đường viền và đường viền 'bình thường'. Bằng cách này, đường viền của bạn và chiều rộng của hộp có tổng số 100px bao gồm cả đường viền.
Thông tin thêm về bóng hộp: tại đây
Biên giới qua tài sản css
Đây là một cách tiếp cận khác, nhưng theo cách này, đường viền sẽ nằm ngoài hộp. Đây là một ví dụ . Như sau từ ví dụ, bạn có thể sử dụng thuộc tính css outline
, để đặt đường viền không ảnh hưởng đến chiều rộng và chiều cao của phần tử. Bằng cách này, chiều rộng đường viền không được thêm vào chiều rộng của một phần tử.
div{
width:100px;
height:100px;
background-color:yellow;
outline:10px solid black;
}
Thêm về phác thảo: ở đây