最好的方法是使用一个 <button>
标签,这样你就可以在里面使用 <br>
标签,例如:
<button>
Some
<br>
Text
</button>
如果你需要它是一个 <input>
标签,并且文本必须放在 value
属性中,以前可以使用 
 (回车符)来换行,如下所示:
<input type="button" value="Really
Tall
Button">
这在 Firefox 中仍然有效,但在 Chrome 中似乎不再有效,在 Safari 中则很危险,因为文本会在第一个实体后被截断。
查看 Chris Coyier 在 CodePen 上的示例:按钮换行 (@chriscoyier) on CodePen.
在最新的 Opera (11.51) 中不起作用。
它在 Internet Explorer 中可以工作吗?
<input type=”submit” value= topValue bottomValue” onclick=”this.style.visibility=’hidden'” class=”button” />
在 Internet Explorer 11 上,换行符或回车符不起作用。
<input type=”submit” value= topValue 
 bottomValue” onclick=”this.style.visibility=’hidden’” class=”button” />
在 Internet Explorer 11 上,换行符或回车符不起作用。
如何为按钮设置固定宽度?比如 150px?
在 iPad 上也不起作用。
在 Android 上的 Dolphin Mini 浏览器中不起作用。
<button>line1<br/>line2<br/>line3</button>
更好的解决方案。
我认为 johndoe 的解决方案更好。
当需要一个
<button>
标签时,它可以正常工作,但当你想要一个真正的按钮输入时,它是一个糟糕的语义替换。代码也应该可以正常工作
在开始和结束标签之间 –
(input type=”submit” value=”Really
Tall
Button” / )
从下一行开始写“Tall”和“Button”。空格也在” “中被计算在内。
测试失败。
我更喜欢 CSS 技术 “white-space: normal;” 它可以正常工作。
这可以正常工作,你太棒了!:)
感谢 Joel!CSS 通常是最好的解决方案!:)
感谢 Joel,这可以工作………………。
没错,感谢 Joel!
它可以完美地工作!
你只需要设置你想要的宽度,然后 “white-space: normal;” 就会起作用;
为 Joel Norman 点赞!
这是唯一对我有用的解决方案。谢谢!!
不错的代码。:)
我希望这个也能工作。
<button style="white-space: normal">这是一行非常非常长的代码</button>
它会将文本分成多行。
是的,这个肯定可以工作。
你如何在这个中换行?
这个可以工作,谢谢。
感谢 Joel!非常有效。
uxfindings.blogspot.com: 我认为有优点和缺点。以下是关于这个问题的两个想法。
从 UX 的角度来看
我想向你说明,虽然这是一种可以实现的功能,但也有可能它不是对用户最好的体验。原因是,按钮文本有可能难以扫描。
从开发者的角度来看
如果你使用一个像这样的可读性强的常量或变量名……
var carriageReturn = "{code}";
那么它应该非常可用。
使用样式 “white-space: normal;” 并且也为按钮设置宽度。它会换行。
我更喜欢在这种情况下使用 CSS!:)
是的,在测试了一些东西之后,CSS 是在按钮中换行的最佳解决方案。也就是说,如果你希望按钮自动换行,而不是在特定单词处换行。
如果你希望按钮在某些单词处换行,你可以始终使用 CSS 更改按钮的宽度,或者创建一个可以使用的图形按钮。
在 CSS 中… 你可以做任何事情。
感谢 Joel
那么通过媒体查询来实现响应式按钮呢?这样你就可以精确地定位何时换行。
然后你只需要添加这个类
.only-mobile {
display: none;
@include media($break-md) {
display: block;
}
}
@include media 是一个 Bourbon 混入 (行为类似媒体查询)
这是一行非常非常长的代码
这段代码不起作用………。
“white-space: normal;” 在 iOS9 中只显示第一个单词。
它在 Firefox、Safari 和 Chrome 中可以正常工作,但在 iOS9 中不行。
文章很糟糕,不起作用。请删除这篇文章。
是的,但是<input type="submit" value="How to wrap text here is the question” />… 如何在特定位置(例如单词 "text" 之后)换行,而不显示 html br 标签?
试试这个,word-wrap: break-word;
试试这个,它对我有用。
white-space: normal;