中间(垂直)对齐<textarea> </textarea>中的文本

时间:2011-04-15 13:39:24

标签: html css

这是一个多行搜索框,所以我希望所有内容都在中间对齐。有可能吗?

5 个答案:

答案 0 :(得分:9)

你可以用垂直填充来伪造它。

textarea {
    padding: 30px 0;
}

通常,您可以使用line-height属性,但不能使用多行文本。

答案 1 :(得分:5)

有HTML5 contenteditable属性。 http://www.w3schools.com/tags/att_global_contenteditable.asp

也许div代码而不是textarea可以解决您的问题。

答案 2 :(得分:1)

您可以创建一个脚本来确定元素高度,行高和文本行,并计算填充顶部,甚至\ n来预先添加文本。

我认为只有CSS才有可能。

答案 3 :(得分:1)

回到我问这个问题的日子里,我尝试用textarea实现这一点,如果没有脚本编写,这是不可能的。答案是添加HTML5&connsteditable =&#34; true&#34;在一个表格单元格上,样式=&#34; vertical-align:middle&#34;。如果某个项目允许使用现代HTML,这是一个相当简单有效的解决方案。

如果您不想将<table><tr>以及<td>添加到标记中,而是希望像<div>这样的常规内容,您仍然需要其中两个:< / p>

<div style="display: table">
  <div 
    style="display: table-cell; vertical-align: middle"
    contenteditable="true">
    I am vertically aligned
  </div>
</div>

答案 4 :(得分:0)

不是解决方案而是解决方法,将其包裹在 label 中并将 textarea 的位置设置为中间。警告:一旦文本内容达到其限制,必须重新计算 textarea 行。

小提琴:https://jsfiddle.net/syjfoqzx/