一、利用css和js盒子模型实现盒子居中

  1. <style>
  2. * {
  3. padding: 0;
  4. margin: 0;
  5. }
  6. html,
  7. body {
  8. height: 100%;
  9. width: 100%;
  10. }
  11. #box {
  12. width: 200px;
  13. height: 200px;
  14. padding: 20px;
  15. border: 10px solid lightgreen;
  16. font-size: 16px;
  17. line-height: 30px;
  18. /* margin: 100px auto; */
  19. background: lightpink;
  20. }
  21. /* 方法一:
  22. 1.知道宽高的情况下把当前元素上下左右居中 */
  23. /* #box {
  24. position: absolute;
  25. top:50%;
  26. left:50%;
  27. margin-left: -130px;
  28. margin-top: -130px;
  29. } */
  30. /* 方法二:
  31. 2.基于CSS3变形属性中的位移,在不知道宽高的情况下也能实现效果 */
  32. /* #box {
  33. position: absolute;
  34. top: 50%;
  35. left: 50%;
  36. transform: translate(-50%, -50%);
  37. } */
  38. /* 方法三:
  39. 3.在不知道宽高的情况下把四个方向的值全部设置为0也能实现居中 */
  40. /* #box {
  41. position: absolute;
  42. top: 0;
  43. left: 0;
  44. bottom: 0;
  45. right: 0;
  46. margin: auto;
  47. } */
  48. /* 方法四:
  49. 4.设置元素在FLEX容器主轴和交叉轴方向上的对齐方式:CENTER居中对齐*/
  50. /* body {
  51. display: flex;
  52. justify-content: center; /!* 在主轴居中 *!/
  53. align-items: center; /!* 在交叉轴居中 *!/
  54. } */
  55. </style>

二、利用js实现元素居中

  1. <body>
  2. <div id="box">
  3. 的哈达四大说不定甲A爱打架爱神的箭阿萨德甲ADHAU盾甲ADJAdaDA的空间DJAdaD
  4. </div>
  5. <script>
  6. // 5.利用js实现元素居中:
  7. // 利用js设置盒子的left和top值
  8. // left==>屏幕宽度的一半 - 盒子宽度的一半 <==>(屏幕宽度- 盒子宽度)/2
  9. let winW = document.documentElement.clientWidth,
  10. winH = document.documentElement.clientHeight,
  11. box = document.getElementById('box');
  12. box.style.position = 'absolute';
  13. // box.style.left = (winW - 260) / 2 + 'px';
  14. // box.style.top = (winH - 260) / 2 + 'px'
  15. // box.style.left = (winW - box.offsetWidth) / 2 + 'px';
  16. // box.style.top = (winH - box.offsetHeight) / 2 + 'px';
  17. </script>