<br> внутри <pre>работает в Safari, но не в Chrome или Edge? - PullRequest
0 голосов
/ 24 февраля 2019

Я использую <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>?

1 Ответ

0 голосов
/ 25 февраля 2019

Я воспроизвел вашу проблему на моей стороне.И после тестирования я нашел проблему, возможно, из-за тега.

Вот мой код тестирования.

<code>    <svg width="100" height="100">
        <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" style="cursor: help;">
            <!--<pre>Foo<br>10 ($)
->
Foo<br>10 ($)

inside title

outside titlte

На скриншоте видно, что внутрии снаружи это показывает по-другому.Так что я думаю, может быть, это проблема.

Я проверил документ MDN https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title,, но объяснений нет.Так странно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...