Почему Firefox и Chrome ведут себя по-разному при использовании U + 3002 с `word-break: keep-all`? - PullRequest
0 голосов
/ 20 марта 2019

Я ввел следующее предложение в textarea, используя японский.

* {
  margin: 0;
  padding: 0;
}

textarea {
  width: 5em;
  height: 10em;
  word-break: keep-all;
}
<textarea>あいうえお。かきくけこ</textarea>

Это такое изображение в Firefox, и предложение следует сразу после U + 3002 (。).

Firefox Result

Однако в Chrome разрыв строки выполняется сразу после U + 3002 (。).

Chrome Result

Согласно MDN , keep-all не допускает разрывы текста CJK.

keep-all

Разрывы слов не должны использоваться для текста на китайском / японском / корейском (CJK). Поведение текста не-CJK такое же, как и для обычного.

Так что я подумал, что Chrome работает не так, как спецификации. Как заставить текстовые разрывы Chrome работать как Firefox?


Сведения об ОС и браузере

  • Windows 10
  • Firefox Developer Edition 67.0b1
  • Google Chrome 72.0.3626.121

1 Ответ

0 голосов
/ 20 марта 2019

В Chrome происходит то, что

Похоже, что сначала Chrome соблюдает правило word-break, а Firefox его игнорирует, как показано здесь:

* {
  margin: 0;
  padding: 0;
}

textarea {
  width: 5em;
  height: 10em;
  word-break: keep-all;
  overflow-wrap: normal;
}
<textarea>あいうえお。かきくけこ</textarea>

А затем Chrome применяет overflow-wrap к этому результату, который действительно дважды разбивает ваше предложение.

Так что действительно странная вещь здесь,Именно поэтому Chrome отказывается разбивать перед любым символом точки даже с word-break: break-all ...

* {
  margin: 0;
  padding: 0;
}

textarea {
  width: 1em;
  height: 46em;
  word-break: break-all;
}
<textarea>あいうえお。かきくけこ푸바.밫foobar.baz..............</textarea>

И это не только в

* {
  margin: 0;
  padding: 0;
}

.test {
  width: 1em;
  height: 46em;
  word-break: break-all;
  border: 1px solid;
}
<div class="test">あいうえお。かきくけこ푸바.밫foobar.baz..............</div>

К сожалению, я не нашел способа обойти это поведение ...

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