关闭文本区域调整大小


117

我正在尝试关闭站点中textarea的大小调整;现在我正在使用这种方法:

.textarea {
    clear:left;
    min-width: 267px;
    max-width: 267px;
    min-height:150px;
    max-height:150px;
}

我知道我的方法不正确,我正在JavaScript中寻找更好的方法。我是一个初学者,所以对我来说最好的解决方案是HTML5或jQuery。

Answers:


253

尝试使用此CSS禁用调整大小

禁用所有文本区域大小调整的CSS如下所示:

textarea {
    resize: none;
}

您可以改为按名称将其分配给单个文本区域(其中textarea HTML为):

textarea[name=foo] {
    resize: none;
}

或按ID(其中textarea HTML为):

#foo {
    resize: none;
}

摘自:http : //www.electrictoolbox.com/disable-textarea-resizing-safari-chrome/


7
您不仅应链接到解决方案,还应在此处进行一些说明。将来很多其他人在寻找这个问题时,都不会为单击答案而烦恼。在此处添加一些详细信息,我将为您的答案+1。
乔恩·埃格兰


8

CSS3可以解决这个问题。不幸的是,目前只有60%的二手浏览器支持它。

对于IE和iOS,您无法关闭调整大小,但是可以textarea通过设置其width和来限制尺寸height

/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */

观看演示


2

只需使用html draggable属性即可轻松完成

<textarea name="mytextarea" draggable="false"></textarea>

默认值为true。


2
问题是关于调整文本区域的大小,而不是拖放。因此,正如预期的那样,至少在Chrome中,在textarea上设置此属性不会奏效。
peveuve,2015年

2

只是一个额外的选择,如果您想恢复应用程序中所有文本区域的默认行为,则可以将以下内容添加到CSS中:

textarea:not([resize="true"]) {
  resize: none !important;
}

并执行以下操作以启用要调整大小的位置:

<textarea resize="true"></textarea>

请记住,此解决方案可能无法在您可能要支持的所有浏览器中使用。您可以在resize此处查看支持列表:http : //caniuse.com/#feat=css-resize


1

根据问题,我在javascript中列出了答案

通过选择标签名

document.getElementsByTagName('textarea')[0].style.resize = "none";

通过选择ID

document.getElementById('textArea').style.resize = "none";

0
//CSS:
.textarea {
    resize: none;
    min-width: //-> Integer number of pixels
    min-height: //-> Integer number of pixels
    max-width: //-> min-width
    max-height: //-> min-height
}

上面的代码适用于大多数浏览器

//HTML:
<textarea id='textarea' draggable='false'></textarea>

两者都可以使其在最大数量的浏览器上运行


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.