jonas: link in div anders auf Firefox und IE7

Ich habe ein problem mit der Navigation der hp.
Da ich das Menü als bild eingefügt habe musste ich div's um die schrift herum machen. Der link ist dan das Kästchen sozusagen :

<html>
<head>
<title>Startseite</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>

<body>

<div class=site>
     <img src="Originale/layout-def.png" width="980" height="700" border="0" alt="">
</div>
<div id="menu">
   <table>
     <tr>
      <a href="index.html"><td height="58" width="83" ></td></a>
         <a href="stand-up.html"><td height="58" width="126" ></td></a>
         <a href="deja-vu.html"><td height="58" width="113" ></td></a>
         <a href="galery.html"><td height="58" width="110" ></td></a>
         <a href="kontakt.html"><td height="58" width="130" ></td></a>
     </tr>
   </table>
</div>
<div id="begruessung">
     <img src="Originale/begruessung-home2.png" width="640" height="400" border="0" alt="">
</div>
</body>
</html>

im IE kann man den link anklicken und man kommt normal auf die nächste Seite. Im Firefox dagegen kann man den link nicht anklicken !? Es ist als ob man ins leere klickt.

  1. im IE kann man den link anklicken und man kommt normal auf die nächste Seite. Im Firefox dagegen kann man den link nicht anklicken !? Es ist als ob man ins leere klickt.

    vielleicht solltest du prüfen, in welchem element ein td-element oder ein a-element vorkommen darf
    http://de.selfhtml.org/html/referenz/elemente.htm

    1. nachtrag: ich wollte mir zuerst einen kommentar bez. tabellenlayout (bzw navigation mittels tabellen) sparen, aber alternativ solltest du dein vorhaben allgemein überdenken und <http://de.selfhtml.org/css/layouts/navigationsleisten.htm@title=ordentlichen code schreiben>

  2. Lieber jonas,

    <div class=site>
         <img src="Originale/layout-def.png" width="980" height="700" border="0" alt="">
    </div>

    Du möchtest ein Hintergrundbild verwenden. Dieses <img>-Element ist kein Inhalt im eigentlichen Sinne. Und auch bei einem class-Attribut möchtest Du den Attributwert in doppelte Anführungszeichen setzen... so wie Du das im weiteren Verlauf mit href und id tust.

    <div id="menu">
       <table>
         <tr>
          <a href="index.html"><td height="58" width="83" ></td></a>
             <a href="stand-up.html"><td height="58" width="126" ></td></a>
             <a href="deja-vu.html"><td height="58" width="113" ></td></a>
             <a href="galery.html"><td height="58" width="110" ></td></a>
             <a href="kontakt.html"><td height="58" width="130" ></td></a>
         </tr>
       </table>
    </div>

    Dass das syntaktisch falsch ist, wurde Dir schon gesagt. Wozu musst Du eigentlich ein <div>-Element um ein anderes packen, wenn es doch genügen würde, das umspannte Element (in diesem Fall <table>) mit der beabsichtigten ID auszustatten? IDs gehören zu den Universalattributen und können in jedem Element vorkommen! Sogar in einem <br id="blubb" />
    Außerdem: eine <http://de.selfhtml.org/css/layouts/navigationsleisten.htm#modern#modern@title=Navigation macht man so>.

    <div id="begruessung">
         <img src="Originale/begruessung-home2.png" width="640" height="400" border="0" alt="">
    </div>

    Du ahnst schon was jetzt kommt...? Genau: Siehe oben.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  3. Hallo Jonas,

    naja, ist ja alles schon gesagt von meinen Vorrednern.

    Vielleicht noch eine Sache: Es gibt Inline- und Blockelemente. <a> ist ein Inline-Element, <td> ein Blockelement. Man kann Blockelemente ineinander verschachteln, beliebig viele. Inline-Elemente kann man in Blockelemente packen, aber [u]keine[/u] Blockelemente in Inline-Elemente. Ganz empfindlich sind zumindest die modernen Browser dann, wenn man ins <a> ein anderes Blockelement packt, wie hier dein <td>.

    Bei IE<=6 kann man die Verschachtelung, wie du sie gemacht hast, für Aufklappmenüs verwenden, das ist aber kein korrektes XHTML...

    Aber wie du schon erfahren hast: Syntaktisch korrekt sind Menüleisten als Aufzählungslisten, <table><tr><td>...</td></tr></table> brauchst du hier also keinesfalls!

    Mit CSS kann man übrigens Inline-Elementen die Eigenschaften von Blockelementen verpassen, z.B. a { display: block; } und umgekehrt, z.B.  li { display: inline; }. Auch { display:inline-block; } ist interessant. Siehe hier: <http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=inline-block@title=display (Anzeigeart bzw. Nichtanzeige ohne Platzhalter)>

    Naja, ich würde mich da an deiner Stelle noch einmal genau reinlesen.

    Viele Grüße
    Johannes

    1. Lieber minimalist,

      Man kann Blockelemente ineinander verschachteln, beliebig viele.

      dieser Satz ist faktisch falsch. Stelle Dir nur einmal ineinander verschachtelte <p> Elemente vor! Die DTD regelt ganz genau, welche Blockelemente wie miteinander verschachtelt werden dürfen. Da gibt es eine sehr komplexe Struktur. Auch Inline-Elemente können nicht beliebig ineinander verschachtelt werden. Denke nur an das bereits erwähnte <a>-Element.

      Generell gilt: Welche Elemente wie ineinander verschachtel werden dürfen, regelt die DTD.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Hi Felix,

        dieser Satz ist faktisch falsch. Stelle Dir nur einmal ineinander verschachtelte <p> Elemente vor! Die DTD regelt ganz genau, welche Blockelemente wie miteinander verschachtelt werden dürfen. Da gibt es eine sehr komplexe Struktur. Auch Inline-Elemente können nicht beliebig ineinander verschachtelt werden. Denke nur an das bereits erwähnte <a>-Element.

        Es ist alles eine Frage dessen, wie man das liest, was zwischen den Zeilen steht. Ich gebe dir vollkommen Recht und wollte das auch so sagen. Ich habe gesagt, dass man beliebig viele Block-Elemente ineinander verschachteln kann. Dass man nur bestimmte Block-Elemente in andere Block-Elemente hineinpacken kann, widerlegt das nicht, sondern war die fehlende Zusatzinfo. ;)

        Die Wichtigste Aussage war: Man kann keine Blockelemente in Inline-Elemente packen, es sei denn, man arbeitet mit display und macht li zum Inline und a zum Block, wie ich es häufig mache.

        Uiuiui, ich mache meinem Nickname hier keine Ehre. ;)

        Gruß
        minimalist

        1. Die Wichtigste Aussage war: Man kann keine Blockelemente in Inline-Elemente packen, es sei denn, man arbeitet mit display und macht li zum Inline und a zum Block, wie ich es häufig mache.

          und genau das ist eben nicht richtig (oder wieder unvollständig?) - es ist nur in den html-dtds so definiert, dass sämtliche block-elemente nicht in inline-elementen vorkommen dürfen ;)

          1. Hallo,

            naja, diese Diskussion über allgemeine Regeln führt uns ja sowieso nicht weiter. Bleiben wir lieber bei konkreten Beispielen, die gepostet werden - und geben wir dazu konkrete Lösungsbeispiele.

            Für die allgemeinen Dinge gibt es ja das gute http://de.selfhtml.org/@title=SelfHTML! Und genügend Urgestein-Forumsteilnehmer, nicht solche Neulinge wie mich. ;)

    2. Inline-Elemente kann man in Blockelemente packen, aber [u]keine[/u] Blockelemente in Inline-Elemente.

      das ist so nicht ganz richtig - man kann lediglich eine reihe an elementen, die "zufällig" als block-elemente definiert wurden, nicht in inline-elemente packen - die display-eigenschaften lassen sich aber beliebig ändern, somit lassen sich problemlos auch als block angezeigte elemente in inline-elemente verpflanzen

      Bei IE<=6 kann man die Verschachtelung, wie du sie gemacht hast, für Aufklappmenüs verwenden, das ist aber kein korrektes XHTML...

      korrektes html auch nicht

      Aber wie du schon erfahren hast: Syntaktisch korrekt sind Menüleisten als Aufzählungslisten, <table><tr><td>...</td></tr></table> brauchst du hier also keinesfalls!

      syntaktisch korrekt ist beides, semantisch sinnvoll nur die listen

      Mit CSS kann man übrigens Inline-Elementen die Eigenschaften von Blockelementen verpassen, z.B. a { display: block; } und umgekehrt, z.B.  li { display: inline; }. Auch { display:inline-block; } ist interessant. Siehe hier: <http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=inline-block@title=display (Anzeigeart bzw. Nichtanzeige ohne Platzhalter)>

      siehe oben