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

导航栏添加href后Grid布局变形及表单required验证失效求助

两个前端问题的修复方案:Grid布局错乱与表单验证失效

一、Grid布局错乱修复

问题根源

你添加的导航栏<a>标签未闭合,导致HTML结构解析异常,直接破坏了big-container-white的Grid布局规则。比如这段错误代码:

<li class="navMenu">
    <a style="text-decoration: none;" href="./about.html">ABOUT ME</li>

<a>标签缺少</a>闭合,浏览器会自动补全错误结构,进而打乱整个Grid布局。

修复步骤

给所有导航栏的<a>标签添加闭合标签,确保HTML结构完整:

<ul class="navMenu-list">
    <li class="navMenu">
        <a style="text-decoration: none;" href="./about.html">ABOUT ME</a>
    </li>
    <li class="navMenu">
        <a style="text-decoration: none;" href="./professional.html">PROFESSIONAL</a>
    </li>
    <li class="navMenu">
        <a style="text-decoration: none;" href="./academic.html">ACADEMIC</a>
    </li>
    <li class="navMenu">
        <a style="text-decoration: none;" href="./contact.html">CONTACT ME</a>
    </li>
</ul>

二、表单验证失效修复

问题根源

  1. 表单控件(<input>/<textarea>)没有被包裹在<form>标签内,浏览器原生验证仅对<form>内的元素生效
  2. <label>标签的ID与对应表单元素的ID重复,违反HTML ID唯一性规范

修复步骤

  1. 用<form>标签包裹整个表单内容,可添加action(提交地址)和method(提交方式)属性,不需要后端提交的话可留空
  2. 移除<label>的重复ID,保持for属性与表单元素ID一致
  3. 给提交按钮添加value属性,让按钮显示明确文本

修改后的表单部分代码

<main>
    <form class="forms-container" action="" method="post">
        <div class="instructions">SEND ME AN EMAIL</div>
        <div class="nameForm">
            <label for="name">Name</label>
            <input required
                   id="name" 
                   name="name" 
                   type="text" 
                   placeholder="Name" 
                   style="width: 410px; padding: 10px;  border-radius: 8px; border: 1px solid; border-color: #dfdede;">
        </div>
        <div class="subject">
            <label for="subjectForm">Subject</label>
            <input required 
                   id="subjectForm" 
                   name="subjectForm" 
                   type="text" 
                   placeholder="Subject" 
                   style="width: 410px; padding: 10px; border-radius: 8px; border: 1px solid; border-color: #dfdede;">
        </div>
        <div class="email">
            <label for="emailForm">Email</label>
            <input required
                   pattern='^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$'
                   id="emailForm" 
                   name="emailForm" 
                   type="email"
                   placeholder='Email'
                   style="width: 410px; padding: 10px; border-radius: 8px; border: 1px solid; border-color: #dfdede;">
        </div>
        <div class="message">
            <label for="messageForm">Message</label>
            <textarea required 
                      id="messageForm" 
                      name="messageForm" 
                      placeholder="Message"
                      style="width: 410px; height: 100px; padding: 10px; border-radius: 8px; border: 1px solid; border-color: #dfdede;"></textarea>
        </div>
        <div class="submitButton">
            <input id="submit" type="submit" value="Send">
        </div>
    </form>
</main>

注:给<label>添加了文本内容,提升页面可访问性;原CSS中.forms-container的Grid样式依然生效,无需修改。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:20:35