Я столкнулся с очень странным поведением относительно раскладки столбцов CSS, которое появляется только в Chrome.Столбцы CSS, нечетное смещение в зависимости от высоты
В зависимости от общей высоты элемента, который находится в столбце, смещение слева сдвинуто, что затрудняет определение фактического местоположения элементов. Отрисовка выглядит отлично, но если вы проверите элемент, вы можете увидеть, что он смещен довольно много.
Вот пример: https://jsfiddle.net/vx8h8u46/
Осмотрите элемент .panel, и вы увидите, что это ограничивающий прямоугольник не начинается слева.
Если вы нажмете на кнопку, чтобы удалить один элемент, то внезапно ограничивающий прямоугольник будет правильным.
Оказывается, что это происходит, когда высота панели превышает определенный порог, но это только предположение, на данный момент. Есть ли работа?
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>
<!-- Something weird happens after this -->
<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>
Какой именно элемент вы имеете в виду? Если вы примените 'display: inline' к' .panel', это устранит проблему. Если это то, что вы имеете в виду, проясните в своем ответе и подумайте о добавлении фрагмента примера. – misterManSam
Я забыл добавить, что .panel имеет отображение: встроенный блок, но проблема сохраняется. –