Я создал это приложение списка покупок, и он работает нормально. Только проблема, с которой я столкнулся сейчас, разбивает длинную строку на следующую строку. Я использую word-wrap, но он не работает.
Поэтому, когда я вхожу в очень длинное слово (Helooooooooooooooooooooooooooooooo)
и т.д., Я хочу, чтобы он сломал слово и покажу его в следующей строке, например
(Helooooooooooooooo
oooooooooooooooooooo)
HTML:
<div id="container">
<input id="add" type="text" placeholder="Type new item here"
autocomplete="off" autofocus/>
<ul id="item_list">
<li id="base" class="hidden">
<input class="check" type="checkbox"> <span class="item">Item</span>
<button class="delete_item hidden"></button>
</li>
</ul>
</div>
CSS:
.item {
font-size: 15px;
/* width: 50%; */
color: #000;
margin: 8px 0 0 20px;
word-wrap: break-word;
word-break: break-word;
overflow: hidden;
}
Пожалуйста, проверьте полный и рабочий код на этом скрипте JS - http://jsfiddle.net/varunksaini/Zjxq5/10/
Я предполагаю, что проблема заключается в элементе .item
а не в поле input
.
Вам необходимо изменить свой CSS следующим образом:
#item_list li {
list-style: none;
border-bottom: 1px dotted #ccc;
xxoverflow: hidden;
xxwhite-space: nowrap;
text-overflow: ellipsis;
padding: 10px 5px 10px 50px;
text-transform: capitalize;
xxword-wrap: break-word;
}
.check { /* DO NOT float .item... */
float: left;
margin-left: -30px;
}
.item {
font-size: 15px;
/* width: 50%; */
color: #000;
margin: 8px 50px 0 20px; /* add right margin to allow for delete button */
word-break: break-all;
display: inline-block;
text-align: left;
}
См. Демонстрацию по адресу: http://jsfiddle.net/audetwebdesign/hpa87/
Результаты выглядят так:
В #item_list li
удалите правила overflow
, white-space
и #item_list li
word-wrap
, они не нужны.
Не .item
.
Для .item
, установите display: inline-block
(block
также работает), установите word-break: break-all
чтобы позаботиться о длинных словах и установите text-align: left
(переопределяет более раннее правило CSS, в результате чего текст выравнивается по центру).
Примечание. Если вы не хотите, чтобы ваша кнопка удаления плавала над текстом описания, добавьте либо правильное дополнение к .item
либо некоторое правое поле.
<textarea id="add" type="text" placeholder="Type new item here" autocomplete="off" ></textarea>
#add{
overflow:hidden;
}
Вы можете использовать некоторую текстовую область для достижения этого требования. По умолчанию сделать высоту textarea похожим на текстовое поле
Вы можете использовать этот плагин http://www.jacklmoore.com/autosize/
<input>
не может этого сделать.