I came across a very strange behavior regarding CSS column layouts that only appears in Chrome.
Depending on the total height of the column column, the offset to the left is shifted, making it difficult to determine the actual location of the elements. The rendering looks great, but if you check the item, you can see that it is offset a lot.
Here is an example: https://jsfiddle.net/vx8h8u46/
Inspect the .panel element and you will see that the bounding box does not start on the left. 
If you click on the button to delete one item, then suddenly the bounding box will be correct. 
It seems that this happens when the height of the panel exceeds a certain threshold, but this is only an assumption at this stage. Is there any work around?
function logOffset() { document.getElementById("log").innerText = document.querySelector(".panel").getBoundingClientRect().left; } window.removeLastItem = function() { var items = document.querySelectorAll(".item"); if (items.length) { items[items.length - 1].remove(); logOffset(); } } logOffset();
* { box-sizing: border-box; } .item { display: inline-block; width: 160px; height: 80px; outline: 1px solid red; } .container { -moz-column-width: 320px; column-width: 320px; -moz-column-fill: auto; column-fill: auto; max-height: 160px; width: 640px; }
<div class="container"> <div class="panel"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> <div class="item">7</div> <div class="item">8</div> <div class="item">9</div> <div class="item">10</div> </div> </div> <div> Left offset of <mark>panel</mark>: <span id="log"></span> </div> <button onclick="removeLastItem()"> Remove last item </button>
css css3 css-multicolumn-layout
Aaron kabashi
source share