我是JS,CSS,HTML的新手,所以我可能会以错误的方式处理这种情况,但是我试图建立一个练习终端,我遇到了以下问题
我有提示"> "在下一个接收文本之前的一个范围内,但当下一个文本到达行尾时,整个范围向下移动而没有提示。
离。
>文本文本文本....
到
>
文字文字........................
我考虑添加一些j来防止"> "从被删除(我想添加退格功能),但我想检查是否有更好的方法。
到目前为止,这是我的代码:
HTML
<body>
<div>
<span>> </span>
<span id="append-here"> text </span>
<textarea id="text"></textarea>
</div>
</body>
CSS
#append-here {
white-space: pre-wrap;
word-wrap: break-word;
display: inline-block;
max-width: 100%;
min-height: 2em;
}
textarea {
width: 20px;
color: black;
height: 1em;
width: .8em;
resize: none;
overflow: hidden;
}
JS
$("#text").bind("keydown", function Append_Key(e) {
$("#append-here").append(String.fromCharCode(e.keyCode).toLowerCase());
});
并且jsfiddle:https://jsfiddle.net/dbncmzwb/
答案 0 :(得分:2)
如果您将内联块更改为内联,那么它将起作用。刚刚更新了你的JSFiddle:
#append-here {
white-space: pre-wrap;
word-wrap: break-word;
display: inline;
max-width: 100%;
min-height: 2em;
}
答案 1 :(得分:0)
你应该将#append
的CSS规则向上移动一个级别,因为我假设你希望其中的所有元素以相同的方式运行。
此外,您需要删除white-space: pre-wrap;
,因为您不需要任何空格。
我还添加了word-break: break-all;
,因为我假设您要构建它以模拟终端。因此,所有字符都将填满屏幕,单词将被分开。
我将一个班级.line
放在#append-here
.line {
word-wrap: break-word;
display: inline-block;
max-width: 100%;
min-height: 2em;
word-break: break-all;
}
无论如何,您应该使用HTML实体>
替换>
文本,因为它会使您的HTML文档无效。要了解更多信息,http://www.w3schools.com/html/html_entities.asp如果您很聪明,您会发现自己无法直接使用&
作为文字,但必须使用&
答案 2 :(得分:0)
只需更改你的css就可以了:内联块内联......
#append-here {
white-space: pre-wrap;
word-wrap: break-word;
display: inline;
max-width: 100%;
min-height: 2em;
}