Единственный реальный способ решить эту проблему - убедиться, что width
контейнера ограничен (примерно) двойной длиной текста.
Например, следующий текст равен примерно 630пикселей, поэтому установка width
в 315px
в дополнение к word-wrap: break-word
приводит к тому, что текст в обеих строках будет одинаковой длины:
.example {
width: 315px;
word-wrap: break-word;
}
<div class="example">AVeryVeryVeryVeryLongUrl/SomeFolder/SomeSubFolder/SomePage.htmlisthebestfileextension</div>
Обратите внимание, что с JavaScript .offsetWidth
вы можете вычислить существующую ширину и установить новую ширину автоматически, хотя я этого не делаю верю это возможно с комбинацией calc()
и width: fit-width
в чистом CSS.
var example = document.getElementsByClassName('example')[0];
example.style.width = example.offsetWidth / 2 - 8 + "px";
// Half the current width, also accounting for the 8px of margin
.example {
word-wrap: break-word;
}
<div class="example">AVeryVeryVeryVeryLongUrl/SomeFolder/SomeSubFolder/SomePage.htmlisthebestfileextension</div>