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

<a> ohne container

potofski

Neues Mitglied
Hallo,

Wenn ich meine Seite durch den w3c validator prüfen lasse, gibt er mir folgende fehlermeldung:

document type does not allow element "a" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag

<a id="header" href="#"></a>

The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.
One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").


So wie ich das verstehe ist es nicht erlaubt einen Link direkt in den <body> zu setzen, ohne ihn vorher zumindest in ein Block Element oder in eins der aufgeführten Elemente zu verschachteln? Gibt es so eine Regel?

hier noch der entsprechende Code:

HTML:
[...]
 </head>    
      
<body>        
    <a id="header" href="#"></a>         
    <ul id="topnavi">             
        <li><a href="#">Home</a></li>             
        <li><a href="contact.htm">Contact</a></li>             
[...]
 

Anhänge

  • validation.jpg
    validation.jpg
    20,7 KB · Aufrufe: 3
Zuletzt bearbeitet:
Verstehe zudem nicht was ein Link soll der nicht anklickbar ist und den man nicht sieht.


<a id="header" href="#"></a>
 
er hat ein hintergrundbild, dass sich bei hover verschiebt. und das bild beinhaltet ein logo. und da es die index datei ist, hat das logo hier noch keine wirklich link funktion, wird auf anderen seiten aber zurück zur index.htm verlinken...

(Deepak Foundation - Home)

kann man das so machen?
 
Wie Struppi schon anmerkte, kann man das machen, wenn der richtige Doctype verwendet wird.

Dein Header kannst du abkürzen:

Bisher
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" xml:lang="en">     
    <head>         
        <title>             Deepak Foundation - Home         
        </title>         
        <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />         
        <meta name="author" content="Deepak Foundation" />             
        <meta http-equiv="language" content="en-UK" />         
        <meta http-equiv="content-language" content="en-UK" />                
        <link rel="shortcut icon" href="http://www.html.de/images/favicon.ico" />                 
        <link rel="canonical" href="http://www.deepakfoundation.org/index.htm" />                 
        <link rel="stylesheet" href="stylesheet.css" type="text/css" />                  
        <!--[if lt IE 8]>         
            <link rel="stylesheet" href="css/ie.css" type="text/css" />         
        <![endif]-->     
    </head>

Besser
HTML:
<!DOCTYPE html> 
<html lang="en">     
    <head>                
        <meta charset=ISO-8859-1>         
        <title>             Deepak Foundation - Home         
        </title>                           
        <meta name="description" content="Seitenbeschreibung">  
        <link rel="shortcut icon" href="http://www.html.de/images/favicon.ico">                 
        <link rel="canonical" href="http://www.deepakfoundation.org/index.htm">                 
        <link rel="stylesheet" href="stylesheet.css" type="text/css">                  
        <!--[if lt IE 8]>         
            <link rel="stylesheet" href="css/ie.css" type="text/css">         
        <![endif]-->     
    </head>

Ist kürzer und der Rest wird nicht gebraucht. Dein Doctype ist jetzt HTML5. Die abschliessenden Schrägstriche ersparst du dir von nun an und damit darfst du nun ohne Fehlermeldung dein Link-Tag nach dem Body-Tag verwenden.

Die Sprach- oder Länderangabe kann man sich eigentlich komplett sparen. Suchmaschinen ignorieren sie, weil sie sich lieber darauf verlassen, was im Text steht und für die Browser ist nur der Zeichensatz wichtig. Fehlt auch der wird auch dann angezeigt aber mit dem Zeichensatz UTF-8.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben