margin: 0 auto
将水平居中一个元素。但是,根据父级和子级大小,有时getBoundingClientRect
会返回一个小数左值(与jQuery偏移量一样)。这些分数在javascript代码的其他地方会导致问题,所以我想删除它们(而不是补偿它们)。水平居中元素没有小数点偏移?
有没有办法使用CSS水平居中整数偏移?或者我应该只使用JavaScript?
有很多水平对齐问题,但没有一个似乎解决了这个问题的子像素困惑。
var br = document.getElementById("kid").getBoundingClientRect();
document.getElementById("info").innerHTML = "left: " + br.left;
body {
margin: 0;
}
#pop {
position: absolute;
width: 401px;
height: 100%;
background-color: pink;
}
#kid {
width: 100px;
height: 100px;
background-color: orange;
margin: 0 auto;
}
<div id="pop">
<div id="kid"></div>
<div id="info">d</div>
</div>
你能不能显示你的代码? – 2015-03-31 17:47:54
getBoundingClientRect应该返回一个整数,没有像小数像素那样的东西。你使用CSS转换? – kursus 2015-03-31 17:49:26
我不知道有一个“居中”div没有小数像素参与的机会......并且由于不同的浏览器有不同的子像素渲染方法,我肯定会用javascript来弥补。 – pschueller 2015-03-31 17:49:55