我已将textarea元素的输入保存到MySQL中的TEXT列。我正在使用PHP从数据库中提取数据,并希望将其显示在p元素中,同时仍然显示用户输入的空白(例如,多个空格和换行符)。我试过一个pre标签,但它不遵守包含div元素中设置的宽度。除了创建PHP函数以将空格转换为& nbsp以及将新行转换为br标签之外,我有哪些选择?我更喜欢干净的HTML / CSS解决方案,但欢迎任何输入!谢谢!
答案 0 :(得分:11)
您可以使用以下CSS
使pre
内的文本换行
pre {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
它目前在CSS3中定义(尚未完成标准),但大多数浏览器似乎都支持它。
答案 1 :(得分:2)
你有两个相互竞争的要求。您希望内容适合某个区域(即:宽度:300px),或者您希望在用户输入时保留空白和换行符。你无法做到这两点,因为一个 - 按照定义 - 会干扰另一个。
由于HTML不支持空白,因此您唯一的选择是将多个空格更改为“& nbsp;”并使用< pre>将换行符更改为< br />标记,或指定css样式“white-space:pre”。
答案 2 :(得分:2)
你可以使用PHP的nl2br function。
答案 3 :(得分:1)
关于div的问题,您可以随时滚动或调整字体(这甚至可以根据服务器端代码中最长行的长度动态调整)。