一、利用css和js盒子模型实现盒子居中
<style>
* {
padding: 0;
margin: 0;
}
html,
body {
height: 100%;
width: 100%;
}
#box {
width: 200px;
height: 200px;
padding: 20px;
border: 10px solid lightgreen;
font-size: 16px;
line-height: 30px;
/* margin: 100px auto; */
background: lightpink;
}
/* 方法一:
1.知道宽高的情况下把当前元素上下左右居中 */
/* #box {
position: absolute;
top:50%;
left:50%;
margin-left: -130px;
margin-top: -130px;
} */
/* 方法二:
2.基于CSS3变形属性中的位移,在不知道宽高的情况下也能实现效果 */
/* #box {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
} */
/* 方法三:
3.在不知道宽高的情况下把四个方向的值全部设置为0也能实现居中 */
/* #box {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
} */
/* 方法四:
4.设置元素在FLEX容器主轴和交叉轴方向上的对齐方式:CENTER居中对齐*/
/* body {
display: flex;
justify-content: center; /!* 在主轴居中 *!/
align-items: center; /!* 在交叉轴居中 *!/
} */
</style>
二、利用js实现元素居中
<body>
<div id="box">
的哈达四大说不定甲A爱打架爱神的箭阿萨德甲ADHAU盾甲ADJAda的DA的空间DJA货daD
</div>
<script>
// 5.利用js实现元素居中:
// 利用js设置盒子的left和top值
// left==>屏幕宽度的一半 - 盒子宽度的一半 <==>(屏幕宽度- 盒子宽度)/2
let winW = document.documentElement.clientWidth,
winH = document.documentElement.clientHeight,
box = document.getElementById('box');
box.style.position = 'absolute';
// box.style.left = (winW - 260) / 2 + 'px';
// box.style.top = (winH - 260) / 2 + 'px'
// box.style.left = (winW - box.offsetWidth) / 2 + 'px';
// box.style.top = (winH - box.offsetHeight) / 2 + 'px';
</script>