马黑PHP整站系统

严格控制textarea的宽高尺寸

位置: 首页 > 前端三套件[ 发布时间: 2026.3.24  作者: 马黑  阅读: 31 ]

一般而言,为规范<textarea> 的尺寸,最常见的方法是给它一个父元素,父元素设置宽高,多行文本框使用100%宽高值。

<textarea> 元素用于创建多行纯文本输入控件,常用做Web页内嵌文本编辑器,也常用于评论、反馈等需要大量文字输入的场景。它支持多种属性来控制外观、行为和验证规则。

试看如下代码:

<style>
    .outerDiv {
        margin: 20px auto;
        width: 640px;
        height: 360px;
        border: 1px  solid red; /* 观察边界之用 */
    }
    .outerDiv textarea {
        width: 100%;
        height: 100%;
        /* 下面是核心 : 让文本框宽高严格等于父元素的宽高(后同)*/
        /* box-sizing: border-box; */
    }
</style>

<div class="outerDiv">
    <textarea></textarea>
</div>

观察运行效果会发现:多行文本框右、下超越了父元素的边界。这是因为,<textarea> 元素默认的 box-sizing 属性值为 content-box,解开 border-box 便可可改变这种状况(可以在线操作)。

box-sizing 用于定义浏览器如何计算元素的总宽度和高度,是控制 CSS 盒模型行为的核心属性。默认情况下(content-box),width 和 height 仅作用于内容区域,padding 和 border 会额外增加元素的实际尺寸;而 border-box 则会将 padding 和 border 包含在设定的宽高内,更易于布局控制。

另一种方法是利用flex弹性布局加以实现。父元素使用flex布局,多行文本框设置 flex-grow 属性值为 1 即可:

<style>
    .outerDiv {
        display: flex;
        margin: 20px auto;
        width: 640px;
        height: 360px;
        border: 1px  solid red; /* 观察边界之用 */
    }
    .outerDiv textarea {
        flex-grow: 1;
        box-sizing: border-box;
    }
</style>

<div class="outerDiv">
    <textarea></textarea>
</div>

用grid网格布局也很简单:

<style>
    .outerDiv {
        display: grid;
        margin: 20px auto;
        width: 640px;
        height: 360px;
        border: 1px  solid red; /* 观察边界之用 */
    }
    .outerDiv textarea {
        box-sizing: border-box;
    }
</style>

<div class="outerDiv">
    <textarea></textarea>
</div>

☪️ 精准控制 <textarea> 的宽高不限于上述三种方法,也无需囿于上述容器包裹文本框的思路,只要一切尽在掌控中,什么实现方法都是好方法。

前一篇: 纯CSS背景图片+渐变叠加+混合模式
下一篇: 有序列表编号补全的实现

发表评论:

       

评论列表 [0条]

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com