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

W3 Validator Frage

max1967

Neues Mitglied
Hallo,

ich habe folgendes Eingabefeld:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
        <meta name="content-style-type" content="text/css" />        
        <meta name="author" content="test.com" />
        <meta name="description" content="test" />
        <meta http-equiv="content-language" content="en" />
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
        <meta name="robots" content="index,follow,noarchive" />
        <meta name="keywords" lang="en" content="test" />
        <title>TEST.com</title>
        <link rel="stylesheet" type="text/css" href="test.css" />
</head>
<body>
<div id="container">
<div id="main">
                <p><img class="img-left" src="images/bild1.png" style= "width=32px; height=32px; border=0px" title="bild1" alt="bild1" />
                <img class="img-right" src="images/bild2.png" style= "width=32px; height=32px; border=0px" title="bild2" alt="bild2" />
                <center><b>
                <form action = "mynameis.php" method = "get">Your Name: <input type = "text" name = "myname" size= "22" maxlength= "22" />
                <input type = "submit" value = "OK" /></form></b>What's your name?</center></p>
</div></div>
</body>
</html>

und folgende css:

HTML:
#body {margin:0; padding:20px 0; font:55% verdana; repeat-x fixed; }
#container {width:580px; margin:0 auto; padding:87px 20px 0 10px; background:#fff no-repeat;}
a {text-decoration:none; color:#26c;}
p {margin:0 0 15px 10px; line-height:1.5em;}
#main {float:left; width:580px; margin-right:20px; padding:0; line-height:1.1em; text-align:justify; }
.right {text-align:right;}
.center {text-align:center;}
.justify {text-align:justify;}
.img-left {float: left; margin-left: 50px; }
.img-right {float: right; margin-right: 50px; }

Leider zeigt der W3 Validator 5 Fehler an:

Line 20, Column 24: element "center" undefined. Did you mean "center" or "textarea"?
<center><b>
Line 21, Column 61: document type does not allow element "form" here; missing one of "object", "ins", "del", "map" start-tag…tion = "mynameis.php" method = "get">Your Name: <input type = "text" name = "
Line 21, Column 62: character data is not allowed here…ion = "mynameis.php" method = "get">Your Name: <input type = "text" name = "m
Line 21, Column 138: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag…myname" size= "22" maxlength= "22" />
Line 22, Column 54: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag…input type = "submit" value = "OK" /></form></b>What's your name?</center><…
Kann mir das bitte so jemand umschreiben, dass keine Fehler mehr angezeigt werden?
 
Morgne.


dafür gibt es eigentlich extra einen Thread.

Aber zu deiner Frage...mit diesen Doctype:

Code:
<!DOCTYPE html PUBLIC "-[B]//W3C//DTD XHTML 1.0 Strict//EN[/B]" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

wurden tags wie <center>, <font>, <b>, <i> "abgeschafft". D.h. diese gibt es nichtmehr, es ist lediglich ein überbleibsel aus der Steinzeit.

So dinge wie bolt oder zentrieren macht man mit CSS.


Gruß
Loon3y
 
Kurz erläutert:

<center> ersetzten durch <div style="text-align:center">

"does not allow element"
Bedeutet so viel, wie dieses Element muss inerhalb eines Containers liegen.
Also beispielsweise einfach ein <p> drum machen.

Prinzipiel alle Texte (oder Formular) innerhalb eines <p></p>, <div></div>, <label> oder ähnliches schreiben. (<label> weist beschriftungstexte einem formularelement zu)

Danach müsste es schon deutlich besser aussehen.

Beispiel:
<div class="form">
<form action="mynameis.php" method="get">
<label>
Your Name: <input...></label>
<label>feld2: <input...></label>
</form>
</div>
....
 
Soweit ich weis, benutzt man Label so:
HTML:
<form action="scriptname.ext" method="get">
 <fieldset>
  <label for="iddesinputs">Dein Name:</label><input ... id="iddesinpputs" />
 </fieldset>
</form>
Bitte korrigiert mich, wenn ich falsch liege.

Mfg
 
Richtig, soweit ich weis braucht man das for="" aber nicht,
wenn das input innerhalb des <label> liegt.
Bin mir aber nicht 100%ig sicher, ich schreibe es auch immer mit.

Wie auch immer, deine Version ist sicherlich die bessere!
 
Das for-Attribut ist generell nur optional. Wenn es angegeben wird muss der Wert des Attributs jedoch einer ID eines anderen Elements entsprechen.
 
Hallo,

erstmal möchte ich mich für die vielen, hilfreichen Antworten bedanken.

Ich habe folgendes ausprobiert:

HTML:
<form action="mynameis.php" method="get">
  <fieldset>
    <label>Dein Name:</label><input type = "text" name = "myname" size= "22" maxlength= "22" />
    <input type = "submit" value = "OK" />
  </fieldset>
</form>

So ist es zwar valid, aber es entsteht ein grauer Rand um die Felder und das Design wird auch zerschossen, bzw. wird dann nach den Feldern falsch dargestellt.

Was kann ich dagegen machen?
 
Also das ein Fieldset einen Rahmen erstellt ist klare Sache :D
Dafür kannst du dir ja das nochmal durchlesen :)
HTML fieldset tag
Aber wegmachen kannst du den Rahmen trotzdem.
in css:
HTML:
fieldset {
    border: none;
  }
 
Zurück
Oben