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

求助:点击输入框时CSS标签上移动画失效问题

表单标签动画不生效的问题修复

以下是导致动画失效的核心问题及修复方案:

  • 类名大小写不匹配:CSS中定义的父容器类为.inputBox(驼峰写法),但HTML里的输入框外层div使用的是.inputbox(全小写),导致父元素的position: relative未生效,绝对定位的.labelInput无法基于父容器定位,动画逻辑失效。
  • 字体大小设置错误:CSS中写的font-size: .85px不符合需求的12px,这会让标签几乎不可见,需改为font-size: 12px。
  • 标签初始定位缺失:.labelInput未设置初始top值,从默认的auto过渡到-20px不会产生平滑动画,需添加初始位置(比如top: 0)。
  • HTML语法错误:<from>应为<form>,虽不影响动画,但属于基础语法问题,建议修正。

修正后的完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulário | GN</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <style>
        body{font-family: Arial, Helvetica, sans-serif;
        background-image: linear-gradient(to right, rgb(20, 220, 80), rgb(17, 54, 71));
        }
        .box{
            color: white;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: rgba(0, 0, 0, 0.6);
            padding: 15px;
            border-radius: 15px;
            width: 23%;

        }
        fieldset{
            border: 3px solid greenyellow;
        }
        legend{
            border: 1px solid greenyellow;
            padding: 10px;
            text-align: center;
            background-color: greenyellow;
            border-radius: 8px;
            color: black;
        }
        .inputBox{
            position: relative;
        }
        .inputUser{
            background: none;
            border: none;
            border-bottom: 1px solid white;
            outline: none;
            color: white;
            font-size: 14px;
            width: 100%;
            letter-spacing: 2px;
            padding-top: 20px; /* 添加内边距避免输入内容被标签遮挡 */
        }
        #submit{
            background-image: linear-gradient(to right, rgb(20, 220, 80), rgb(19, 169, 195));
            width: 40%;
            border: none;
            padding: 10px;
            color: black;
            font-size: 17px;
            cursor: pointer;
            border-radius: 10px;
            text-align: center;

        }
        #submit1{
            position: relative;
            left: 60px;
            background-image: linear-gradient(to right, rgb(20, 220, 80), rgb(19, 169, 195));
            width: 40%;
            border: none;
            padding: 10px;
            color: black;
            font-size: 17px;
            cursor: pointer;
            border-radius: 10px;
            text-align: center;
            font-style: inherit;

        }
        #submit:hover{
            background-image: linear-gradient(to right, rgb(20, 220, 80), rgb(7, 105, 40));

        }
        #submit1:hover{
            background-image: linear-gradient(to right, rgb(20, 220, 80), rgb(7, 105, 40));

        }
        .labelInput{
            position: absolute;
            border: none;
            pointer-events: none;
            transition: .5s;
            top: 0; /* 添加初始定位 */
            color: white; /* 初始颜色,确保过渡自然 */
        }
        .inputUser:focus ~.labelInput, 
        .inputUser:valid ~ .labelInput{
            top: -20px;
            font-size: 12px; /* 修正字体大小 */
            color: greenyellow;

        }
    </style>
</head>
<body>
   
    <div class="box">
        <form action = ""> <!-- 修正form标签拼写 -->
            <fieldset> 
                <legend><b>Cadastro de Pacientes</b></legend>
                <br>
                    <div class="inputBox"> <!-- 修正类名大小写 -->
                        <label for = "nome" class="labelInput">*<b>Nome:</b></label>
                        <input type="text" name="nome" id="nome" class="inputUser" required>
                    </div>
                    <br><br>
                    <div class="inputBox"> <!-- 修正类名大小写 -->
                        <label for ="email" class="labelInput"><b>Email:</b></label>
                        <input type="text" name="email" id="email" class="inputUser" required>
                    </div>
                    <br><br>
                   
                    <div class="inputBox"> <!-- 修正类名大小写 -->
                        <label for ="telefone" class="labelInput">*<b>Telefone:</b></label>
                        <input type="text" name="telefone" id="telefone" class="inputUser" required>
                    </div>
                    

                    <p>*<b>Sexo:</b></p>
                        <input type="radio" id="feminino" name="genero" value="feminino" required>
                        <label for="feminino">Feminino</label>
                        <br>
                        <input type="radio" id="masculino" name="genero" value="masculino" required>
                        <label for="masculino">Masculino</label>
                        <br><br><br>
                       
                        <div class="inputBox"> <!-- 修正类名大小写 -->
                            <label for ="data_nascimento">*<b>Data de Nascimento:</b></label>
                            <input type="date" name="data_nascimento" id="data_nascimento" class="inputUser" required>
                        </div>
                        <br><br>

                        <div class="inputBox"> <!-- 修正类名大小写 -->
                            <label for ="cidade" class="labelInput">*<b>Cidade:</b></label>
                            <input type="text" name="cidade" id="cidade" class="inputUser" required>
                        </div>
                        <br><br>

                        <div class="inputBox"> <!-- 修正类名大小写 -->
                            <label for ="estado" class="labelInput">*<b>Estado:</b></label>
                            <input type="text" name="estado" id="estado" class="inputUser" required>
                        </div>
                        <br><br>

                        <div class="inputBox"> <!-- 修正类名大小写 -->
                            <label for ="endereco" class="labelInput"><b>Endereço:</b></label>
                            <input type="text" name="endereco" id="endereco" class="inputUser" required>
                        </div>
                        <br><br>
                            <a href="file:///home/liniquer/Formul%C3%A1rio%20/pag1.html">
                                <button type="button" name="submit" id="submit" value= "< Voltar">< Voltar</button>
                            </a>
                            <a href="file:///home/liniquer/Formul%C3%A1rio%20/pag2.html">
                                <button type="button" name="submit" id="submit1" value="Avançar >">Avançar ></button>
                            </a>
            </fieldset>
        </form>
    </div>
    
</body>
</html>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:47:36