[英]inline-block SPAN does not allow ENTER for a newline
所以我试图使用SPAN elemenet设置display: inline-block
所以它可以包含多行。
当我手动输入文本和文本到达EOL时,它会自动跳转到下一行。
但是我不能使用ENTER来插入换行符,因为游标跳到整个块之外。
http://jsfiddle.net/7yLLg2rz/1/
<div id="window-kitkat" class="form-control" contenteditable="true">
<div class="skeleton-block" contenteditable="false">
<span class="skeleton">
<span class="skeleton-edit" contenteditable="true">TOPIC HEADING</span>
</span>
<span class="skeleton">
<span>Cx: </span>
<span class="skeleton-edit" contenteditable="true"></span>
</span>
<span class="skeleton">
<span>Px: </span>
<span class="skeleton-edit" contenteditable="true"></span>
</span>
<span class="skeleton">
<span>Wx: </span>
<span class="skeleton-edit" contenteditable="true"></span>
</span>
<span class="skeleton">
<span>Tx: </span>
<span class="skeleton-edit" contenteditable="true"></span>
</span>
<span class="skeleton">
<span>PEARLS: </span>
<span class="skeleton-edit" contenteditable="true"></span>
</span>
</div>
</div>
// Skeleton
.skeleton {
display: block;
}
.skeleton > span {
display: inline;
}
.skeleton-edit, .answers-edit {
width: 100%;
background-color: #C0FFB3;
display: inline-block !important;
min-height: 20px;
}
一种方法是在输入按键时人为地创建换行符:
var spans = document.querySelectorAll('。skeleton-edit');
span.addEventListener('keypress', function (event) {
if (event.keyCode == 13) {
// prevent default action
event.preventDefault();
// append new line
this.innerHTML += (this.innerHTML.indexOf('<br>') > -1 ? '<br>' : '<br><br>');
// focus at the end of text
var range = document.createRange();
var sel = window.getSelection();
range.setStart(this.childNodes[this.childNodes.length - 1], 0);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}, false);
尝试按Shift + Enter
可在不离开文本框的情况下向文本添加新行。
另一种方法是使用表格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.