• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular macht in IE Probs

Status
Für weitere Antworten geschlossen.

krackmoe

Neues Mitglied
Hab folgendes Formular in html/php geschrieben:


PHP:
    echo'
                                <form action="gast.php" METHOD="POST">
                                    <div id="textfeld">
                                        Name:<br>
                                        <input type="text" name="name"></input><br>
                                        Email:<br>
                                        <input type="text" name="mail"></input><br>
                                        Mitteilung:<br>
                                        <textarea name="mitteilung" rows="4" cols="16"></textarea><br>
                                        <input type="submit" value="senden"></input>
                                    </div>
                                </form>
                                ';
Im Firefox wirds top richtig angezeigt.
Im IE wird das Formular total auseinander gerissen, also viel zu extreme Abstände.

Die css dazu schaut so aus:
HTML:
#textfeld{
    position: fixed;
    margin-top: 120px;
    margin-left: 130px;
    text-align: justify;
}
Jemand Ideen wie ich dem IE an den Kragen gehen kann?
 
Zuletzt bearbeitet:
Werbung:
wäre mal interessant den rest zu sehen:

also css datei, falls vorhanden und die html ausgabe als ganzes.
 
Position: fixed geht erst ab IE 7, aber das dürfte vermutlich nicht das Hauptproblem sein.
 
Werbung:
Da ist mal meine gast.php:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Zimmermann Daniel</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="javas.js"></script>
</head>
    <body>
        
            <div id="haupt">
                <div id="header" style="background-image: URL(slices/Bilder/header.png); width: 800px; height: 65px;">
                </div>
                <div id="menu" style="background-image: URL(slices/Bilder/menu.png);">
                    <div id="button">
                        <a href="index.html" onMouseover="austausch.src='slices/Bilder/homeeffekt.png';" onMouseout="austausch.src='slices/Bilder/home.png'"><img src="slices/Bilder/home.png"  border="0" name="austausch" alt="home"></a><br>
                        <a href="lebenslauf.html" onMouseover="austausch2.src='slices/Bilder/lebenslaufeffekt.png';" onMouseout="austausch2.src='slices/Bilder/lebenslauf.png'"><img src="slices/Bilder/lebenslauf.png"  border="0" name="austausch2" alt="lebenslauf"></a><br>
                        <a href="gast.php">Gast</a>
                    </div>
                </div>
                <div id="main" style="background-image: URL(slices/Bilder/main.png);">
                    <h3>Gästebuch</h3>
                    <div id="gast">
                        <?php
                            error_reporting(E_ALL);
                            
                            define('MYSQL_HOST', 'localhost');
                            define('MYSQL_USER', 'xxx');
                            define('MYSQL_PASS', 'xxx');
                            define('MYSQL_DATABASE', 'xxx'); 

                            mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
                                die("Es konnte keine Verbindung aufgebaut werden\n".mysql_error());
                            mysql_select_db(MYSQL_DATABASE) OR
                                die("Konnte ".MYSQL_DATABASE." nicht benutzen ".mysql_error());    
                            $name="";
                            $mail="";
                            $mitteilung="";
                            $gesendet=false;
                            
                            echo'
                                <form action="gast.php" METHOD="POST">
                                    <div id="textfeld">
                                        Name:<br>
                                        <input type="text" name="name"></input><br>
                                        Email:<br>
                                        <input type="text" name="mail"></input><br>
                                        Mitteilung:<br>
                                        <textarea name="mitteilung" rows="4" cols="16"></textarea><br>
                                        <input type="submit" value="senden"></input>
                                    </div>
                                </form>
                                ';
                            if(isset($_POST["name"]) && isset($_POST["mail"]) && isset($_POST["mitteilung"])){
                                $user = $_POST["name"];
                                $email = $_POST["mail"];
                                $msg = $_POST["mitteilung"];
                                
                            if(preg_match('#[<>&\/\\\]#', $user) || preg_match('#[<>&\/\\\]#', $email) || preg_match('#[<>&\/\\\]#', $msg)){
                                echo "Keine Sonderzeichen";
                                echo "<a href='gast.php'>nochmal</a>";
                                die();
                            }
                            else{        // ip adresse vergleichen und schaun ob er innerhalb von 10 minuten gepostet hat                    
                                if($user != null && $email != null && $msg != null){
                                    $datum = date("Y.m.d - H:i");
                                    $ipadresse ="$REMOTE_ADDR";                                
                                    $ergebnis = "";                                        
                                    $result = mysql_query("SELECT timestamp FROM gastebuch WHERE ip = '$ipadresse' ORDER BY TIMESTAMP DESC LIMIT 1");
                                    
                                    if(mysql_num_rows($result) == 0){ // wenn                                 
                                        $times = time();
                                        mysql_query($eintrag = "INSERT INTO gastebuch(name, mail, mitteilung, datum, ip, timestamp) VALUES ('$user', '$email', '$msg', '$datum','$ipadresse', '$times')");
                                    }                                    
                                    else{
                                        $ergebnis = mysql_result($result,0,0);
                                        if($ergebnis + 600 > time()){
                                            echo "Du kannst erst in 10 Minuten wieder posten!";
                                        }
                                        else{
                                            $times = time();
                                            mysql_query($eintrag = "INSERT INTO gastebuch(name, mail, mitteilung, datum, ip, timestamp) VALUES ('$user', '$email', '$msg', '$datum','$ipadresse', '$times')");
                                        }
                                    }
                                }                            
                                else{
                                    echo "Felder leer";
                                    echo "<a href='gast.php'>nochmal</a>";                                
                                }
                            }
                            }
                            $count = 0;                            
                            $tabelle = mysql_query("SELECT name, mail, mitteilung, datum, ip FROM gastebuch ORDER BY datum DESC") OR die(mysql_error());                            
                            echo '<div id="eintrage">';
                            while($row = mysql_fetch_assoc($tabelle)){
                                echo "<b>Datum:</b> ".$row["datum"]."<br>";
                                echo "<b>Name:</b> ".$row["name"]."<br>";
                                echo "<b>Email:</b> "."<a href=mailto:".$row['mail'].">".$row['mail']."</a><br>";
                                echo "<b>Mitteilung:</b><br>".$row["mitteilung"]."<br>";
                                $count++;
                            }
                            echo'</div>';
                            
                            if($count > 3){
                                echo'
                                    <div id="weiter">
                                        <a href="gast.php">nächste Seite</a>
                                    </div>
                                    ';
                            }
                            
                            
                                                                
                        ?>
                    </div>
                </div>
                <div id="footer" style="background-image: URL(slices/Bilder/footer.png); width: 800px; height: 59px;">
                </div>                
            </div>
            <div id="unten">
                <a href="http://www.daniel-zimmermann.at" class="p1">2008, Zimmermann Daniel | www.daniel-zimmermann.at</a>  <a href="impressum.html" class="p2">Impressum</a>
            </div>
        
    </body>
</html>
Da meine CSS:
HTML:
#haupt{
    margin: 0 auto;
    width: 800px;
    height: 600px;
    margin-top: 20px;
    border: 2px solid gray;
}
#header{
    position: relative;
}
#menu{
    position: relative;
    height: 476px; 
    width: 119px;
    float: left;
}
#main{
    height: 476px;
    width: 681px;
    margin-left: 119px;    
    margin-top:0px;
}
#home{    
    margin-left: 210px;
    margin-right: 20px;
    margin-top: 210px;
    position: fixed;
    font-family: verdana;
    font-size: 12px;
    color: black;
    font-weight: bold;    
}
#button{
    margin-top: 150px;
    margin-left: 30px;
}
#footer{
    position: relative;
    margin-top: 0px;
    margin-left: 0px;
}
#lebenslauf{
    position: fixed;
    margin-left: 130px;
    margin-top: 80px;
    font-family: verdana;
    font-size: 12px;
    color: black;
    text-align: justify;
}
a.p1{
    float: left;
    text-decoration: none;
}
a.p2{
    text-decoration: none;
}

h3{
    margin-top: 10px;
    position: absolute;
    margin-left: 130px;
    font-family: verdana;
    font-size: 16px;
}
#unten{
    margin: 0 auto;
    margin-top: 2px;
    width: 800px;
    text-align: right;
    font-family: verdana;
    font-size: 10px;
}
#impress{
    position: absolute;
    margin-top: 100px;
    margin-left: 130px;
    font-family: verdana;
    font-size: 12px;
    text-align: justify;
}
#gast{
    position: absolute;
}
#textfeld{
    position: ;
    margin-top: 120px;
    margin-left: 130px;
    text-align: justify;
}
#eintrage{
    width: 250px;
    height: 200px;
    position: absolute;
    margin-top: 50px;
    margin-left: 350px;
    text-align: justify;
}
a{
    text-decoration: none;
}
a:link{color: black;}
a:visited{color: gray;}
a:hover{color: #BA9015;}
a:active{color: #BA9015;}

a.p1:link{color: #89867B; }
a.p2:link{color: #89867B; }
a.p1:visited { color: black;}
a.p2:visited{ color: black;}
a.p1:hover   { color:#CDCC62;}
a.p1:active  { color:#CDCC62;}
a.p2:hover   { color:#CDCC62;}
a.p2:active  { color:#CDCC62;}
Und Hp Link ist folgender: Zimmermann Daniel
 
Werbung:
Werbung:
Also in meinem IE ist nichts "zerrissen", im Gegenteil, da ist alles gestaucht. Der Platz reicht nicht aus, um das Formular und die Einträge nebeneinander anzuzeigen, deswegen ist beides übereinander verschoben. Aberansonsten siehts genauso aus wie im Firefox.

Nur an Deiner Semantik solltest Du noch arbeiten. Das erste, was mir aufgefallen ist, dass Du ein <h3> hast, aber weder <h1> noch <h2>, das ist unmöglich. Dein Menü ist keine Liste und Dein Formular div-Suppe. Labels gibt es auch keine. Bei Wartungsarbeiten (leider derzeit auer Betrieb) gibts ein Tutorial, wie man barrierefreie Formulare mit optimaler Nutzbarkeit machen kann.

Gruß,
-Efchen
 
Okay.. unter Firefox, IE7, IE8, Opera usw funktioniert meine Homepage.

Aber unter IE6, wird die HP komplett auseinander gerissen.
Hab mich jetzt ewig mit position gespielt usw.. aber ich kriegs nicht hin!

Gibts da irgendeinen Trick? :p
 
Werbung:
Ich würde auf position verzichten, das braucht man nur in sehr wenigen Fällen und man sollte genau wissen, was man tut.

Den einzigen Trick, den ich kenne, ist sauber zu arbeiten. Ordentliches HTML als Basis, alles valide, guter Doctype. Und Kompüromissbereitschaft, was das Layout angeht.
 
Ich kenne eine gute Lösung, wenn ich nachher Zeit habe, schreibe ich mal ein Tutorial zum Designen von Formularen mit Hilfe von CSS.

Grüße
 
Da ich mich nachher auch an ein Formular mache, freue ich mich schon darauf :D

Gruß thuemmy
 
Zuletzt bearbeitet:
Werbung:
Werbung:
jap, dann warten wir mal lieber ab. Nicht, dass ich mir unnötig Arbeit mache. Mein Version ist allerdings ebenfalls hundert Prozent (100%) barrierefrei.^^
 
Also wenn sowas barrierefrei ist, dann eine Lösung von Einfach-fuer-Alle.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben