Как найти, где браузер повреждает абзац текста

Документация Material-UI охватывает это довольно подробно, но есть несколько разных частей документации, необходимых для понимания кода, который вы разместили.

Что касается того, почему используется тема, то в документации описывается этот вопрос, но одним из вариантов использования является управление цветовыми схемами. Например, если у вас мультитенантное приложение (одна кодовая база используется для нескольких клиентов), вы можете захотеть использовать цвета, характерные для каждого клиента. Темы позволяют динамически изменять цвета, шрифты и другие аспекты внешнего вида, просто предоставляя другую тему в корне вашего приложения. В конкретном примере, который вы опубликовали, тема используется для добавления CSS-кода для внешнего вида панелей инструментов, которые включены в стандартную тему Material-UI, но которые могут быть переопределены в пользовательской теме.

Вот код Material-UI, который отвечает за настройки по умолчанию для theme.mixins.toolbar: https://github.com/mui-org/material-ui/blob/master/packages/material-ui/ src / styles / createMixins.js

А вот соответствующая выдержка из этого кода:

toolbar: {
      minHeight: 56,
      [`${breakpoints.up('xs')} and (orientation: landscape)`]: {
        minHeight: 48,
      },
      [breakpoints.up('sm')]: {
        minHeight: 64,
      },
    }

5
задан Eli_s 15 January 2009 в 16:46
поделиться

5 ответов

Я предложил бы перенести все пробелы в тег span и найти координаты каждого тега. Когда Y-значение изменяется, Вы находитесь на новой строке.

3
ответ дан 14 December 2019 в 13:49
поделиться

Походит на плохую идею, когда Вы объясняете пользовательские размеры шрифта набора, режим доступности MS Windows и сотни различных мобильных устройств. Позвольте браузеру сделать, это - вещь - пытающийся иметь точный контроль над рендерингом, только вызовет Вас часы разочарования.

0
ответ дан 14 December 2019 в 13:49
поделиться

Я не думаю, что Вы сможете сделать это с любым видом точности, не встраивая Геккона/WebKit/Трайдент или по существу воссоздавая их.

0
ответ дан 14 December 2019 в 13:49
поделиться

Я не думаю, там будет очень чистым решением этого, если любой вообще. Браузер будет течь абзац для установки свободному месту, linebreaking при необходимости. Полагайте, что, если пользователь изменяет размер окна браузера, все абзацы будут повторно представлены и почти наверняка сменят свои положения повреждения. Если пользователь изменит размер текста на странице, то абзацы будут повторно представлены с различными точками прерывания строки. (Или некоторый сценарий на Вашей странице) при изменении размера другого элемента на странице это изменит сумму пространства, доступного плавающему абзацу и снова - различные точки прерывания строки.

Кроме того, изменение фактической разметки Вашей страницы для имитации чего-то, что браузер делает для Вас (и делает очень хорошо) походит на неправильный подход к тому, что Вы делаете. Какова фактическая проблема, которую Вы пытаетесь решить здесь? Существует, вероятно, лучший способ достигнуть его.

Править: Хорошо, таким образом, Вы хотите представить к PDF то же как "экранизация". У Вас есть определенная категорическая экранизация номинируемой - с точки зрения размеров окна браузера, пользовательских таблиц стилей, предпочтений шрифта и скорректированного размера шрифта? Критическая вещь о HTML состоит в том, что он сознательно не указывает определенное расположение. Это просто описывает то, что находится на странице, что они и где они друг относительно друга.

Я видел несколько дезинформированных попыток прежде для создания некоторого HTML, который будет точно копировать печатное творческое, разработанный в чем-то как приложение DTP, где категорическое абсолютное расположение важно. Те усилия были обречены на отказ из-за природы HTML и выполнение его наоборот (поскольку Вы пробуете к), будет еще хуже, потому что у Вас даже нет категорической начальной точки для работы от.

При условии, что это - все из Ваших рук, и необходимо будет сделать это так или иначе, мое предложение состояло бы в том, чтобы разочароваться в идее исказить HTML. Посмотрите на программное обеспечение преобразования PDF - если оно хорошо работает, оно должно дать Вам некоторые опции для кернинга шрифта и подобных настроек. Проигрывание вокруг с деталями здесь должно получить Вас что-то, что приближает рендеринг шрифта в браузере и таким образом повреждает строки в тех же местах.

Приводя это к сбою, все, что я могу предложить, делает снимки экрана браузера и анализирует их с OCR для разработки, где строки повреждаются (он не должен требовать очень точного OCR, так как Вы знаете то, что необработанный текст так или иначе, он по существу просто должен считать пробелы). Или, возможно, просто встройте снимок экрана в PDF, если текстовый поиск/выбор не является грандиозным предприятием.

Наконец выполнение его вручную вероятно единственный способ сделать эту работу окончательно и надежно.

Но действительно, это все еще просто неправильно, и любые попытки пересмотреть требования были бы лучше. Продолжайте подниматься один шаг в цепочке - почему PDF должен иметь тот же самый неровный край как некоторый произвольный рендеринг браузера? Можно ли достигнуть той цели другим (лучшим) способом?

3
ответ дан 14 December 2019 в 13:49
поделиться

Возможно, альтернатива: сделайте все разрывы строки сами, вместо того, чтобы полагаться на браузер. Поместите весь текст в пред теги и добавьте Ваши собственные разрывы строки. Теперь, по крайней мере, Вы не должны выяснять, куда браузер поместил их.

0
ответ дан 14 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: