我想通过CSS设置
<textarea rows="4" cols="50"></textarea>
它的含义等同于:
textarea {
height: 4em;
width: 50em;
}
其中1em等同于当前字体大小,因此将文本区域设置为50个字符宽。 点击这里查看。
padding
(填充)和line-height
(行高)。比如说,如果在顶部和底部设置了0.5em的填充(padding),并且行高(line-height)为1.2em,则4行的高度将为1 + 4 * 1.2 = 5.8em。 - nalplyheight: calc(3em + 8px);
。 - GBUwidth
和height
在使用CSS时会被用到。
<!DOCTYPE html>
<html>
<head>
<title>Setting Width and Height on Textareas</title>
<style>
.comments { width: 300px; height: 75px }
</style>
</head>
<body>
<textarea class="comments"></textarea>
</body>
</html>
em
来指定高度,但我怀疑它能否用于指定宽度。它可能适用于等宽字体(在确定字符的宽高比并相应修改宽度值后),但除此之外,字符宽度并不固定,因此我认为 em
或 cols
属性在指定宽度时无法帮助。 - akinuri我认为你不能这样做。我总是使用高度和宽度。
textarea{
width:400px;
height:100px;
}
使用 CSS 的方式的好处在于您可以完全样式化它。现在,您可以添加类似以下内容的东西:
textarea{
width:400px;
height:100px;
border:1px solid #000000;
background-color:#CCCCCC;
}
line-height
、容器上的 padding
(不基于 box-sizing
计算高度),甚至考虑使用不同字体纵横比以确保文本框显示设置的行数,这是通过使用 CSS 高度无法实现的。 - William Isted我只是想发布一个演示,使用calc()来设置行/高度,因为没有人这样做。
body {
/* page default */
font-size: 15px;
line-height: 1.5;
}
textarea {
/* demo related */
width: 300px;
margin-bottom: 1em;
display: block;
/* rows related */
font-size: inherit;
line-height: inherit;
padding: 3px;
}
textarea.border-box {
box-sizing: border-box;
}
textarea.rows-5 {
/* height: calc(font-size * line-height * rows); */
height: calc(1em * 1.5 * 5);
}
textarea.border-box.rows-5 {
/* height: calc(font-size * line-height * rows + padding-top + padding-bottom + border-top-width + border-bottom-width); */
height: calc(1em * 1.5 * 5 + 3px + 3px + 1px + 1px);
}
<p>height is 2 rows by default</p>
<textarea>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</textarea>
<p>height is 5 now</p>
<textarea class="rows-5">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</textarea>
<p>border-box height is 5 now</p>
<textarea class="border-box rows-5">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</textarea>
textarea
被视为一个替换元素,具有内在尺寸(类似于img
),如此处所述:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#styling_with_css。 - djvg