DIV не такой широкий, как страница в Chrome (для мобильных устройств), когда длинное слово переполняется - PullRequest
0 голосов
/ 01 февраля 2019

Случай 1: Без initial-scale=1.0

Вот код:

<!DOCTYPE html>
<html>
  <head>
    <title>Foo</title>
    <meta name="viewport" content="width=device-width">
    <style>
      body {
        margin: 0;
      }
      .header {
        background: green;
        color: white;
        height: 2em;
      }
    </style>
  </head>
  <body>
    <div class="header">
      Header
    </div>
    <p>
      Veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongword
    </p>
</html>

Я открываю эту страницу с помощью Chrome в настольном браузере.Затем я щелкаю правой кнопкой мыши на странице и выбираю Inspect.Затем я щелкаю значок мобильного телефона в инспекторе и выбираю Galaxy S5 из выпадающего списка.Я вижу это:

image

Тот же результат можно воспроизвести с помощью Chrome на реальном мобильном телефоне.Элемент <div> не такой широкий, как страница.

Случай 2: С initial-scale=1.0

Вот код:

<!DOCTYPE html>
<html>
  <head>
    <title>Foo</title>
    <meta name="viewport" content="width=device-width; initial-scale=1.0">
    <style>
      body {
        margin: 0;
      }
      .header {
        background: green;
        color: white;
        height: 2em;
      }
    </style>
  </head>
  <body>
    <div class="header">
      Header
    </div>
    <p>
      Veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongword
    </p>
</html>

Вот выводсейчас.Страница выглядит нормально, когда она загружается, но при прокрутке вправо мы видим, что <div> по-прежнему не такой ширины, как вся ширина страницы.

image image

Вывод в обоих случаях остается одинаковым, даже если я добавлю width: 50% к .header в CSS.

Вопрос

Почему возникает эта проблема?Как я могу исправить это так, чтобы элемент <div> действительно был такой же ширины, как страница, и все длинное слово было видно справа (это нормально, если пользователь должен прокрутить вправо, чтобы увидеть длинное слово)?

1 Ответ

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

Вы имеете дело с переполнением здесь;элемент, в котором находится текст, не расширяет свою ширину - поэтому дочерние элементы, унаследовавшие эту ширину, тоже не становятся шире.

Решение (или обходной путь, в зависимости от того, как вы хотите его видеть) состоит в том, чтобы вызвать такоедлинные слова, которые нужно разбить, https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap

Если вы посмотрите таблицу совместимости браузера ниже на этой странице, вы увидите, что значение anywhere еще не поддерживает браузер, ожидайте Firefox 65+ -но в большинстве случаев break-word должно подойти.

(Вы также можете проверить аналогичное свойство https://developer.mozilla.org/en-US/docs/Web/CSS/word-break Иногда сочетание обоих может привести к лучшим результатам в старых браузерах.)

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