如何禁用 textarea 的可调整大小属性

如何禁用 textarea 的可调整大小属性

技术背景

在网页开发中,textarea 元素默认是可以由用户调整大小的,这在某些情况下可能不符合设计需求。比如在设计一个固定布局的表单时,不希望用户随意改变 textarea 的大小影响页面整体布局。因此,需要禁用 textarea 的可调整大小属性。

实现步骤

禁用所有 textarea 的调整大小属性

可以使用 CSS 的 resize 属性来实现。将 resize 属性设置为 none 即可禁用 textarea 的调整大小功能。

1
2
3
textarea {
resize: none;
}

可以将上述代码添加到全局的 CSS 文件中,或者放在 <style> 标签内。

禁用部分 textarea 的调整大小属性

使用 class 属性

在 HTML 中为 textarea 添加一个特定的 class,然后在 CSS 中针对该 class 进行样式设置。

1
<textarea class="textarea1"></textarea>
1
2
3
.textarea1 {
resize: none;
}

使用 name 属性

如果知道 textareaname 属性值,可以通过属性选择器来禁用特定 textarea 的调整大小功能。

1
<textarea name="foo"></textarea>
1
2
3
textarea[name=foo] {
resize: none;
}

使用 id 属性

通过 id 属性也可以精确地禁用某个 textarea 的调整大小功能。

1
<textarea id="foo"></textarea>
1
2
3
#foo {
resize: none;
}

使用内联样式

可以直接在 textarea 标签的 style 属性中设置 resize: none;

1
<textarea style="resize: none;"></textarea>

使用 jQuery

如果项目中使用了 jQuery,也可以通过 jQuery 来设置 resize 属性。

1
$('textarea').css("resize", "none");

核心代码

禁用所有 textarea

1
2
3
textarea {
resize: none;
}

禁用部分 textarea(使用 class)

1
<textarea class="not-resizable"></textarea>
1
2
3
.not-resizable {
resize: none;
}

禁用特定 textarea(使用 id)

1
<textarea id="specific-textarea"></textarea>
1
2
3
#specific-textarea {
resize: none;
}

jQuery 实现

1
$('textarea').css("resize", "none");

最佳实践

  • 优先使用 CSS 来禁用 textarea 的调整大小属性,因为 CSS 是处理样式的最佳方式,不会增加额外的脚本加载和执行时间。
  • 如果只需要禁用部分 textarea 的调整大小功能,建议使用 class 属性,这样可以提高代码的可维护性和复用性。
  • 在使用内联样式时,要注意避免过多的内联样式,以免影响代码的可读性和可维护性。

常见问题

兼容性问题

resize 属性是 CSS3 的属性,目前大部分现代浏览器都支持,但 Internet Explorer 不支持该属性。对于不支持 resize 属性的浏览器,可以通过设置 widthheight 来限制 textarea 的大小。

1
2
3
4
5
6
7
textarea {
max-width: 300px;
min-width: 300px;
min-height: 100px;
max-height: 100px;
resize: none;
}

resize 属性不生效

resize 属性只有在 overflow 属性的值不是 visible 时才会生效。因此,如果发现 resize 属性不生效,可以尝试设置 overflow 属性。

1
2
3
4
textarea {
resize: none;
overflow: auto;
}

如何禁用 textarea 的可调整大小属性
https://119291.xyz/posts/2025-05-09.how-to-disable-textarea-resizable-property/
作者
ww
发布于
2025年5月9日
许可协议