2017-01-11 35 views
0

Я не считаю правило слишком приятным в глазах в определенных ситуациях, потому что оно имеет тенденцию ломать длинные строки в неправильных местах при правильном условии.Слово CSS с использованием символов сначала

Он производит что-то вроде этого:

|--- DIV ---| 
|   | 
| English/S | 
| panish | 
|   | 
|-----------| 

вместо

|--- DIV ---| 
|   | 
| English/ | 
| Spanish | 
|   | 
|-----------| 

Есть ли способ для меня, чтобы точно настроить мои правила CSS так, что он пытается разорвать слова через символы, прежде чем нарушая фактические слова? Если да, то как мне это сделать?

ответ

2

Я думаю, что единственным способом добиться такого поведения является использование <wbr> (mdn link) в вашей разметке в позиции, которую вы хотите вызвать для разрыва слова.

Посмотрите:

.word-box{ 
 
    width:100px; 
 
    margin:5em; 
 
    border:1px solid #606266; 
 
}
<div id='break-wbr' class='word-box'> 
 
English/<wbr>Spanish 
 
</div>

Это также хорошо supported.

Другим способом сломать в положении, было бы с помощью застенчивого дефиса (&shy;)

.word-box{ 
 
    width:100px; 
 
    margin:5em; 
 
    border:1px solid #606266; 
 
}
<div id='break-shy' class='word-box' lang='en'> 
 
English/&shy;Spanish 
 
</div>

но недостаток использования застенчивых дефисов, что он вставляет видимый дефис в точке разрыва слова.

Вы также можете взглянуть на очень похожий и более подробный ответ here.

+0

Мне очень нравится подход '', но в моем случае весь текст является динамическим и поступает из базы данных. '' Мне нужно знать, где взять его. Я предполагаю, что я мог бы просто добавить «» ко всем символам. –

0

Попробуйте добавить это. word-break: keep-all;

+0

Не работает: https://jsfiddle.net/pcqqcdbf/ –

+0

возможно, потому что английский/испанский считается одним словом. Попробуйте английский/испанский. с пространством после /. – jmag

+0

Я не думаю, что это вариант для меня. –

 Смежные вопросы

  • Нет связанных вопросов^_^