1、给定border或padding时,盒子的大小会被撑大,如果不想撑大盒子如何做?

需求:盒子尺寸为300300,背景色为红色,边框10px黑色,上下左右20px的内边距,如何完成?
如下图:加了boder和padding后,盒子被撑开到360
360了,
image.png

2、解决方法

  1. 手动内减

自己计算多余的大小,手动在内容中减去。
计算量大,比较的麻烦

  1. 自动内减

给例子设置属性box-sizing: border-box即可。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <style>
  8. div{
  9. width: 300px;
  10. height: 300px;
  11. /* border边框和padding内边距是会撑开div的高度的 */
  12. border: 10px solid black;
  13. padding: 20px;
  14. /* margin是外边距,不会撑开div高度的 */
  15. margin: 30px;
  16. background-color: rebeccapurple;
  17. box-sizing: border-box;
  18. }
  19. </style>
  20. <body>
  21. <div></div>
  22. </body>
  23. </html>

image.png