1

最初の画像:ここに画像の説明を入力

2 番目の画像:ここに画像の説明を入力

問題: 2 番目の画像で、非表示の html タグが表示された後に黄色と緑の間にスペースがあるのはなぜですか? これをどのように修正すればよいですか?どうもありがとう。

これがhtmlの私のコードです

<div id="login">
    <?php
    session_start();
    $errmsg = array();
    if(isset($_SESSION['errmsg'])&&is_array($_SESSION['errmsg'])&&count($_SESSION['errmsg'])>0){
        foreach($_SESSION['errmsg'] as $msg){
            echo '<p id="error"><img src="img/error.png" alt="Login error!">'.$msg.'</p>';
        }
        unset($_SESSION['errmsg']);
    }
    ?>
    <form method="post">
        <label for="email">Email:</label>
            <input id="email" type="email" name="email" required>
        <label for="pass">Password:</label>
            <input id="pass" type="password" name="pass" required>
            <input id="submit" type="submit" name="login" value="Login">
    </form>
    <?php
    include 'functions/functions.php';
    if(isset($_POST['login'])){
        $result=AuthenticateUser($_POST['email'],$_POST['pass']);
        if($result){

        }
        else
            $errmsg[]='Login error:please check your e-mail & password';
            session_regenerate_id();
            $_SESSION['errmsg'] = $errmsg;
            session_write_close();
            header('location:index.php');
            exit();
    }
    ?>
</div>

これがcssの私のコードです

label, input#pass, input#register{
    display:block;
}
p#error {
    color:#FF0000;
}
div#nav{
    background-image:url('../img/nav.png');
    background-repeat:no-repeat;
}
div#nav, a {
    text-decoration:none;
}
body {
    margin:0 auto;
    width:600px;
}
div#login, div#register {
    background-image:url('../img/form.png');
    background-repeat:repeat-y;
}
4

1 に答える 1

2

おそらく、 のデフォルトのスタイルと関係があります<p>。に変更<p id="error">してみて<div id="error">、問題が解決するかどうかを確認してください。margin-top:0px;のスタイル ルールに追加することもできますp#error

<p>これらの解決策のいずれかで問題が解決した場合、問題はタグのデフォルトの上部マージン値が原因でした。マージンがスタートを押し下げ<div id="login">、ギャップを引き起こしました。

于 2012-08-23T09:40:51.797 に答える