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