У меня возникла странная проблема с библиотекой, которую я разрабатываю, и она сводится к следующему коду:
<html>
<body>
<div style="position: absolute; left: 200px;">
<div style="position: absolute; left: 0px; top: 0px">
Hello some text.
</div>
<div style="position: absolute; left: -50px; top: 50px">
Hello some text.
</div>
<div style="position: absolute; left: -100px; top: 100px">
Hello some text.
</div>
<div style="position: absolute; left: -150px; top: 150px">
Hello some text.
</div>
<div style="position: absolute; left: -200px; top: 200px">
Hello some text.
</div>
</div>
</body>
</html>
Код здесь очень простой: у нас один и тот же текст размещен по-разному div
с. Позиция - это все, на что различаются div
. Я ожидал, что все пять текстов будут отображаться одинаково, будь то одна строка или несколько строк. Однако в разделах слева нет обтекания текстом, а в блоках справа есть.
Такое поведение соответствует Chrome 83 и Firefox 77 и Edge 83.
Похоже, виноват отрицательный левый, потому что если я их удалю, он будет отображаться последовательно (я не могу этого сделать в реальном приложении, хотя с учетом того, как эти смещения рассчитываются).
<html>
<body>
<div style="position: absolute; left: 0px;">
<div style="position: absolute; left: 200px; top: 0px">
Hello some text.
</div>
<div style="position: absolute; left: 150px; top: 50px">
Hello some text.
</div>
<div style="position: absolute; left: 100px; top: 100px">
Hello some text.
</div>
<div style="position: absolute; left: 50px; top: 150px">
Hello some text.
</div>
<div style="position: absolute; left: 0px; top: 200px">
Hello some text.
</div>
</div>
</body>
</html>
Это ошибка во всех этих браузерах? Или это как-то логично?
Актуальный рендеринг:
Expected rendering:
ожидается