06.盒子的水平布局.html 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .outer{
  10. width: 800px;
  11. height: 200px;
  12. border: 10px red solid;
  13. }
  14. .inner{
  15. width: auto;
  16. height: 200px;
  17. background-color: #bfa;
  18. margin-right: 200px;
  19. }
  20. /*
  21. 元素的水平方向的布局:
  22. 元素在其父元素中水平方向的位置由以下几个属性共同决定:
  23. margin-left
  24. border-left
  25. padding-left
  26. width
  27. padding-right
  28. border-right
  29. margin-right
  30. 一个元素在其父元素中,水平布局必须要满足以下的等式:
  31. 子元素的 margin-left+border-left+padding-left+width+padding-right+border-right+margin-right=其父元素内容区的宽度(必须满足)
  32. -以上等式必须满足,如果相加结果使等式不成立,则称为过渡约束,等式会自动调整
  33. -调整的情况:
  34. -如果这七个值中没有为auto的情况,则浏览器会自动调整margin-right值以使等式满足
  35. 这七个值中有三个值可以设置为auto
  36. width
  37. margin-left
  38. margin-right
  39. -如果某个值为auto,则会自动调整为auto的那个值以使等式成立
  40. -如果将一个宽度和一个外边距设置为auto,则宽度会调整到最大,设置为auto的外边距会自动为0
  41. -如果将三个值都设置为auto,则外边距都是0,宽度最大(跟不设置的效果一样)
  42. -如果将两个外边距设置为auto,宽度为固定值,则会将外边距设置为相同的值
  43. 所以我们经常利用这个特点来使一个元素在其父元素中水平居中
  44. 实例:
  45. width:xxxpx;
  46. margin:0 auto;
  47. */
  48. </style>
  49. </head>
  50. <body>
  51. <div class="outer">
  52. <div class="inner"></div>
  53. </div>
  54. </body>
  55. </html>