Дан простой макет flexbox с изображением рядом с произвольным текстом, это желаемый результат:
#container {
align-items: center;
background: black;
display: flex;
justify-content: center;
padding: 10px;
width: 500px; /* Dynamic */
}
#image {
background: white;
height: 50px; /* Dynamic */
margin-right: 10px;
width: 50px; /* Dynamic */
}
span {
color: white;
font-size: 40px;
/* Make sure text also breaks when no hints are available */
overflow-wrap: anywhere;
}
<div id="container">
<div id="image"></div>
<span>long_text_should_be_<br />allowed_to_break</span>
</div>
Однако для моего варианта использования я должен использовать <wbr>
вместо <br>
, что нарушает поведение центрирования.
#container {
align-items: center;
background: black;
display: flex;
justify-content: center;
padding: 10px;
width: 500px;
}
#image {
background: white;
height: 50px;
margin-right: 10px;
width: 50px;
}
span {
color: white;
font-size: 40px;
overflow-wrap: anywhere;
}
<div id="container">
<div id="image"></div>
<span>long_text_should_be_<wbr />allowed_to_break</span>
</div>
Я понимаю, что последнее является ожидаемым поведением, поскольку дочерние элементы flexbox заблокированы, а разрывы строк в блоках не сжимаются до фактической ширины текста. Но поскольку он работает так легко с <br>
, мне интересно, можно ли его настроить для достижения того же результата с помощью <wbr>
или альтернативных подсказок разрыва строки.
Цели:
- Должен работать в динамической среде c размер, размеры контейнера и изображения могут отличаться
- Должен вернуться к поведению
break-all
, когда не указаны подсказки разрыва строки - Должен работать с произвольной длиной текста от 1 до n символов
- Должно работать только в последней версии Chrome с латинским текстом LTR