在表格中设置textarea的高度

时间:2015-12-16 00:19:40

标签: javascript jquery html css

我已将textarea的高度设置为500%,但由于某种原因,它没有变为500%。我认为这与它在桌子内部有关,但我不确定要改变什么设置正确的高度。出于某种原因,textarea的宽度可以在表格内改变。

<table> 
<tr>

<td> 
firstTD 
</td> 

<td>
<form method = 'POST' action = 'updateProfile.php'>
<textarea id = 'textarea' placeholder = 'type something here...' onfocus = \"this.placeholder = ''\" onblur = \"this.placeholder = 'type something here...'\" maxlength = '10000'></textarea>
</form>
</td>

</tr> 
</table>
function sockets(server) {
  var io = require('socket.io')(server),
      matchMakingQueue = [];

  // etc...
}

module.exports = sockets;

3 个答案:

答案 0 :(得分:1)

另一个答案解决了这个问题,但没有解释。当你使用%来定义CSS中的宽度/高度时,你就可以使它成为该元素容器的百分比。宽度/高度。

当你将textarea设置为空的<td>的100%时,它不会很大。

将其设置为posistion:如果没有祖先元素定位,则绝对将起作用。一种更简单的方法是使用除%之外的其他东西来定义宽度和高度。尝试width:10em;并进行调整,直到你做对了。

修改

回答评论中的问题:在这种情况下使用%来定义高度的原因是因为空单元格具有高度,而不是宽度。空表格单元格仍然继承行的高度,该高度与最高<td>一样高。在这种情况下,还有另一个<td>具有内容,使单元格具有高度。

所以,如果有另一行,并且同一列中的一个单元格有内容,那么宽度也适用于%。

也就是说,在表格中使用%表示宽度和高度并不是一个好主意,因为当表格中的内容发生变化时,您的百分比会发生变化。此外,当您使用%而不是px或em时,它不会拉伸父容器。

再次修改

老实说,我甚至没有注意到表单元素。那么你的百分比是相对于表单元素的高度/宽度而不是<td>。必须有一些填充给你的单元格宽度/高度,但形式不会有任何尺寸。

答案 1 :(得分:0)

尝试将textarea设为position: relative并向父母提供width。同时删除left并将right0值设为textarea。但请记住,这会使table, td { border: 1px solid black; position: relative; width: 350px; } textarea { resize: none; height: 500%; left: 0; right: 0; position: absolute; top: 0; }溢出内容。这是你期待的吗?

&#13;
&#13;
<table>
  <tr>
    <td>
      firstTD
    </td>
    <td>
      <form method='POST' action='updateProfile.php'>
        <textarea id='textarea' placeholder='type something here...' onfocus=\ "this.placeholder = ''\" onblur=\ "this.placeholder = 'type something here...'\" maxlength='10000'></textarea>
      </form>
    </td>
  </tr>
</table>
&#13;
table,
td {
  border: 1px solid black;
  position: relative;
  width: 350px;
}
textarea {
  resize: none;
  height: 10em;
  width: 100%;
  display: block;
  box-sizing: border-box;
}
&#13;
&#13;
&#13;

或者你是否需要这样的东西?

&#13;
&#13;
<table>
  <tr>
    <td>
      firstTD
    </td>
    <td>
      <form method='POST' action='updateProfile.php'>
        <textarea id='textarea' placeholder='type something here...' onfocus=\ "this.placeholder = ''\" onblur=\ "this.placeholder = 'type something here...'\" maxlength='10000'></textarea>
      </form>
    </td>
  </tr>
</table>
&#13;
#f::
Send, {Asc 124}
return
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用此功能,您可以设置文本区域的大小

$("textarea").css("height", $("textarea").parent("td").height())
.css("width", $("textarea").parent("td").width())