php - 为什么我的 textarea 中提交的文本呈现为单行?
问题描述
我不确定问题出在哪里,但是如果我在按住键盘上的一个键的同时输入 textarea,我的数据库的输出将呈现为一行,这会破坏我的页面格式。基本上我只有一长行这样的文本aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
离开页面并且没有任何换行符。
换句话说,如果我不手动键入enter
以在我的 textarea 中创建换行符,或者如果我不使用spacebar
来写一些看似正常的句子,那么即使 textarea 推送也不存在换行符在我输入时将文本向下一行。
我已经用一个普通的 PHP 脚本尝试了这个,没有过滤我的任何内容(我还确保在呈现文本时不过滤任何内容),这仍然会发生。为什么是这样?有没有办法让我确保我的 textarea 在键入时自动添加新行?
我没有在我的 HTML 中使用cols
or rows
,而是通过 CSS 生成了高度和宽度。
HTML:
<form action="foo.php" method="post">
<textarea id="1"></textarea>
<input id="submit" type="submit" name="submit" value="Comment" />
</form>
CSS:
#1 {
width: 100%;
min-height: 126px;
box-sizing: border-box;
overflow: hidden;
resize: none;
font-size: 15px;
color: black;
margin-bottom: 16px;
padding: 4px 8px;
border: 2px solid #0716a2;
border-radius: 0 0 4px 4px;
}
提及在复制和粘贴未格式化的文本(即不是来自这样的站点)时会发生这种情况也可能会有所帮助。我的 textarea 应该能够容纳多个段落。
解决方案
在我看来,文本只是被正常渲染。
查看以下具有以下 CSS 的 HTML 位:
div {
border: 1px solid red;
width: 400px;
}
这段 HTML:
<div>
aaaaaa
</div>
渲染:
然而,这:
<div>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</div>
呈现:
但是这个:
<div>
aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa
</div>
呈现:
挺标准的 但是,如果要解决此问题,可以添加以下样式:
overflow-wrap: break-word;
这会导致长词打断,就像这样(用一些额外的填充文本来显示它如何不会不必要地打断其他词):
我希望这会有所帮助。
推荐阅读
- qt - Qt3D 渲染的基本问题
- reactjs - changing the dark mode color in chakra ui
- android - ADB - how to check if file contains a string
- c# - ModelBinding throws error No parameterless constructor defined for this object
- c++ - How to avoid races if a signal is emitted before calling QObject::connect()?
- azure - VMSS for outgoing connections in Azure
- django - Django app with potentially very long task run-time
- r - A better way to do group_by() comparisons (R)
- php - 未定义的变量,使用 laravel 7,无法定义路由的参数,使用 eloquent ORM 的 CRUD
- wordpress - 通过 API 更新 wordpress 帖子而不更改其状态