Без HTML5 вы можете использовать Javascript для вставки <span></span>
до или после символов, которые вы хотите разбить на:
//Jquery
$("#id_of_the_container").html(function(index, text) {
return text.replace(/_/g, "_<span />");
});
//Pure Javascript
var htmlText = document.getElementById("id_of_the_container").innerHTML;
document.getElementById("id_of_the_container").innerHTML = htmlText.replace(/_/g, "_<span />");
, а затем используйте класс CSS контейнера для переноса слов:
.yourClass {
word-break : break-word;
}
и, наконец, установите пробел шириной ноль пикселей в качестве содержимого перед интервалом:
.yourClass > span:before {
content: "\200b";
}
$("#set").html(function(index, text) {
return text.replace(/_/g, "_<span />");
});
.boxes-container > div {
margin: 5px;
max-width: 200px;
border : solid black 2px;
display: inline-block;
padding : 5px;
}
.bigger {
margin-right : 200px !important;
}
.wrap {
word-break: break-word;
}
.wrap > span:before {
content : "\200b";
}
.answer-example {
color : RGB(0, 50, 0);
border-color: RGB(0, 50, 0) !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="boxes-container">
<div class="bigger">
Without_Anything,
Long_Strings_With_Underscores_Make_text_Hard_To_Wrap
</div>
<div class="wrap">
Without_Span_tags,
Long_Strings_With_Underscores_Make_text_Hard_To_Wrap
</div>
<div id="set" class="wrap answer-example">
With_Span_tags,
Long_Strings_With_Underscores_Make_text_Hard_To_Wrap
</div>
</div>