You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为我的首个手写form表单设置正确的响应式flex布局格式

表单Flex布局修复方案

核心问题:

  • 原有代码未对「标签+对应输入框」做分组,flex排布时会出现标签和输入框错行的问题
  • 输入框未做宽度适配,提交按钮也没有单独设置对齐规则,导致样式不符合预期

修改后的HTML代码

<section>
<div class="contact_right">
    <form class="contact_form" id="contact_form">
        <!-- 每组标签+输入框增加外层分组容器 -->
        <div class="form_item">
            <div class="form_label">
                <label for="contact_name">Full Name:</label>
            </div>
            <div class="form_input_wrap">
                <input class="contact_input" type="text" id="contact_name" name="contact_name" placeholder="Name">
            </div>
        </div>
        <div class="form_item">
            <div class="form_label">
                <label for="contact_email">Email Address:</label>
            </div>
            <div class="form_input_wrap">
                <input type="email" id="contact_email" name="contact_email" placeholder="Email">
            </div>
        </div>
        <div class="form_item">
            <div class="form_label">
                <label for="contact_number">Mobile Number:</label>
            </div>
            <div class="form_input_wrap">
                <input type="tel" id="contact_number" name="contact_number" placeholder="Mobile Number">
            </div>
        </div>
        <div class="form_item">
            <div class="form_label">
                <label for="contact_message">Message:</label>
            </div>
            <div class="form_input_wrap">
                <textarea rows="4" cols="40" id="contact_message" name="contact_message" value=""></textarea> 
            </div>
        </div>
        <!-- 提交按钮增加外层容器控制对齐 -->
        <div class="form_submit_wrap">
            <button type="submit">Submit</button>
        </div>
    </form>
</div>
</section>

修改后的CSS代码

/* Contact Page Styling */
.contact_left {
    flex-direction: row;
    flex: 1;
    align-content: center;
    text-align: center;
}

.contact_right {
    display: flex;
    flex-direction: row;
    flex: 1;
    justify-content: center;
}

.contact_form {
    display: flex;
    flex-direction: column;
    padding: 0;
    max-width: 90%;
    margin: auto;
    gap: 16px; /* 控制表单项行间距 */
}

/* 表单项分组样式,桌面端横向排布 */
.form_item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px; /* 标签和输入框之间的间距,可自行调整 */
}

.form_label {
    text-align: right;
    flex: 0 0 120px; /* 固定标签宽度,避免不同长度标签排版混乱,可根据需求调整数值 */
}

.form_input_wrap {
    flex: 1; /* 输入框占剩余全部宽度 */
}

.contact_input, textarea {
    width: 100%;
    box-sizing: border-box; /* 避免内边距撑宽输入框 */
}

/* 提交按钮右对齐 */
.form_submit_wrap {
    width: 100%;
    text-align: right;
}

@media screen and (max-width: 1024px) {
    section {
        width: 80%;
    }
}

@media screen and (max-width: 800px) {
    section {
        flex-direction: column;
        text-align: center;
        width: 100%;
        margin: 2px;
    }
    .contact_form {
        justify-content: flex-start;
        align-content: flex-start;
        width: 100%;
        box-sizing: border-box;
        padding: 0 16px;
    }

    /* 移动端表单项改为纵向排布 */
    .form_item {
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
    }

    .form_label {
        text-align: left;
        flex: unset;
        width: 100%;
    }
    
    .form_input_wrap {
        width: 100%;
    }
}

内容的提问来源于stack exchange,提问作者Beau Barbera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:15:03