Я использую <br>
внутри тега <pre>
(например, Foo<br>10
), и это правильно показывает в Safari (v12.0.3) как две строки, но как Foo10
в Chrome 72.0.3626.109 (в Mac OS HighSierra) и Microsoft Edge 42.17134.1.0 (в Windows 10).
Руководство разработчика Mozilla гласит, что <br>
- это «фразировка контента», разрешенная в <pre>
.
Исходный код генерируется пакетами R htmlWidgets и networkD3 , и я отслеживал код Javascript, который генерирует код <pre>
, для sankeyNetwork.js (генерирует диаграммы Санки).
Я взял автоматически сгенерированный html-файл и вычеркнул как можно больше, чтобы просто выделить эту проблему.Когда вы откроете этот HTML-файл и наведите курсор на левую панель, вы должны увидеть «Foo» и «10 ($)» в двух строках.В Safari это работает, а в Chrome и Edge - нет.Если вы наведите курсор на строку «Бар» (без каламбура), вы всегда увидите «Бар» и «10 ($)» в двух строках, потому что мы просто используем новую строку вместо <br>
в блоке <pre>
.
Вот HTML-файл:
<!DOCTYPE html>
test
Foo
10 ($)
Foo
Bar
10 ($)
Бар
Простое исправление заключается в изменении sankeyNetwork.js изамените <br>
на \n
, и я подниму это на странице networkD3 GitHub.
Есть идеи, почему Chrome и Edge неправильно отображают тег <br>
?