Dropout ohne JS möglich?

  • Hi, ich habe hier ein schönes Thema gefunden und wollte fragen öb ich um das JS herum komme...
    Quelle: http://jquery.bassistance.de/accordion/demo/

    Beziehe mich auf das Bsp: "Divitus structure, div container, div header (class title), div content, no active on startup and can be completely closed"
    Ist das 4. Bsp auf der Seite mit "Tennis, Soccer, Baseball".

    Alles liebe
    thilda

  • Jein.

    Das zusätzliche Inhalte sichtbar werden wenn man draufklickt - ja,
    dass es dann offen bleibt wenn man auf was anderes klickt - nein.

    Simples Beispiel:

    HTML
    <style>
    a span { display: none; }
    a:focus span { display: block; }
    </style>
    <a href="#">hallo<span>hi</span></a>
  • Um den Inhalt wieder zu schließen muss man, so wie ich das kurz gesehen habe, einfach irgendwo anders im "raum" hinklicken. Bekomme ich das auch zu wenn ich auf den Link selber nochmal drauf klicke?

  • Nein.

    Du könntest höhstens ein schließ-knopf machen.

    Beispiel

    HTML
    <style>
    a span { display: none; }
    a:focus span { display: inline; }
    a:focus span.mask { display: block; position: absolute; left: 50px; margin-top: -30px; background-color: #ccc; }
    </style>
    <a href="#">hallo<span class="content"><br>hi</span><span class="mask">x</span></a>
  • So... kaum setzt man sich ran und denkt alles ist toll kommen die Probleme.
    Da ja die verschachtelung besteht ist das Span auch ein Link.

    Jetzt wäre die Überlegung ob man es hinbekommt ohne die Verschachtelung den Effekt zu haben, so das zB ein ganzer Absatz oder so eingebunden werden kann.
    Ich möchte halt nicht das das Eingebundene auch ein Link ist.

    Also im Grunde wäre das dann ein ToolTip zum Ausklappen aber nur wenn er geklickt ist.

  • Du kannst doch den span anders stylen - dann sieht es nichtmehr wie ein link aus. Du kannst den Text auch absolut positionieren - dann hast du dein Tooltip, ein richtiger link darf ja so oder so nicht rein ;)

  • Ja, ok. Jetzt sehe ich auf jeden fall was so allg läuft.
    Aber wir machen das mal richtig... also ich war vorher etwas allg. und will einfach mal mein Problem richtig darlegen.

    Ich habe eine Tabelle die in den "ToolTip" soll. Was ja in einem Span schonmal garnicht rein darf.

    Also hier mal ein paar Code-schnipsel:

    HTML
    <table class="built2_gebaeude">
             <tr>
                <td>Planetenzentrale (StufeX)</td>
                <td><a class="baukosten1" href="" title="Baukosten"><img src="" alt="">X</a></td>
                <td>Bauzeit</td>
                <td>11:11:11</td>
                <td class="bau_auftrag"><a href="" title="">Ausbauen auf Stufe X</a></td>
             </tr>
         </table>

    Und mit hilfe des Links soll dann diese Tabelle hier erscheinen

    Die erste Tabelle kann man vielleicht auch noch anders machen. Ist das ratsam?
    Ich habe ein Bsp gefunden für eine Liste... da wäre dann auch die tabelle wieder erlaubt einzubinden
    Wäre dann das bsp hier: http://www.cssplay.co.uk/menus/new-dropdown.html

  • Und wozu brauchst du bitte ein <span> wenn du ein <table> hast?...

    Span war nur ein Beispiel.

    //P.S. es gibt noch eine tolle spielerei die mit css3 gekommen ist - nämlich die Pseudoklasse :target , damit könnte man sowas auch basteln. Würde aber nur in aktuellen Browsern funktionieren - dachte ich erwähns trotzdem mal.

    Einmal editiert, zuletzt von Grevas (25. Februar 2011 um 19:45)

  • So, jetzt habe ich es dann doch geschafft.
    Hier mein Ergebniss:

    Einmal editiert, zuletzt von thilda (13. März 2011 um 18:08)

  • So... es funktioniert zwar. ABER.
    In einem a-Tag darf kein Blockelement stehen. Der Table ist also verboten... Wie wird das also realisiert? So wie es oben steht meintest du es doch oder?

  • naja... die infos sind eigentlich schon ein table. Das einziege was mir noch eingefallen ist das es vielleicht über display: table; gelöst werden kann.
    Also alles ummodeln und dann so aussehen lassen.

    Bekomme ich diesen tollen "klick"-effect eigentlich auch mit anderen elementen hin, außer dem a-Tag?

  • Das ist nicht valide. Ein Wunder, wenn es ein Browser derzeit "richtig" interpretiert. Zukünftige Browser, vlt. schon der FF4, werden damit Probleme haben.

    Btw. die einfachste Lösung:

    Code
    <ul>
    <li><a href="#">Linkziel</a>
     <ul>
       <li><a href="#">Untermenü</a></li>
       <li><a href="#">Untermenü</a></li>
       <li><a href="#">Untermenü</a></li>
     </ul>
    </li>
    </ul>

    CSS

    Code
    li ul { display: none; }
    li:hover ul { display: block; }
  • Ich weiß nicht wie du auf diese Idee kommst...

    Auch zukünftige Browser rendern mehr als HTML. Nur weil ein <a> Tag per default ein inline Element ist - heißt es nicht, dass man es so verwendet. Der Grund warum ein <table> innerhalb von <a> nicht Valide ist, ist nur, dass innerhalb von Inline-Elementen nur andere Inline-Elemente 'erlaubt' sind.


    //P.S. deine 'einfachste Lösung' deckt nicht die Anforderungen die du gegeben hast. Die Untermenüs bleiben nicht offen, wenn man nur drauf geklickt hat... (und übrigens, funktioniert die Lösung im IE6 nicht - was allerdings auch recht egal ist)

  • Das was ich da als letztes gepostet habe ist nicht valide... das weiß ich ja jetzt auch... Aber es funzt in Opera und Firefox^^
    Habe dann das A als Div gesetzt und musste dann alles mit einem :hover machen ist aber nicht mehr das was ich will...

    und es ist halt eigentlich ne tabelle...

  • *sigh* wie gesagt, nur ob etwas von einem HTML Parser als Valide oder nicht erkannt wird, hat noch lange nichts zu sagen.

    Wenn du unbedingt willst, dass ein Parser es richtig erkennt, musst du für den halt die Sachen beschönigen indem du z.B. <span>'s statt der Tabelle verwendest (kannst es entweder mit display: table oder auch display: inline-block erreichen).
    Empfinde ich aber als etwas unnötig, denn, ein <a> kann AUCH ein Blockelement sein - nur wird sowas bei HTML Überprüfung nunmal nicht berücksichtigt. Aber das ist dann nichtmehr 'mein' Problem.

  • Ich bin gerade ein wenig erschüttert so etwas von euch zu hören. Der FF zb zeigt auch gelegentlich ein paar Fehler bei der Seitenansich wenn ich es so mache wie auf der Seite zuvor geschrieben.
    Mit der Div+hover variante funzt dann alles super.

    Und eigentlich ist man doch schon sehr geneigt validen Code zu schreiben oder?

  • Ich würde es eher Fehlerfrei nennen.
    Wie beschrieben, der Validator kann gar nicht bewerten ob es richtig oder falsch ist. Der verwendet nur die defaults der Elemente - die kann man allerdings überschreiben (wie eben beim <a> 'display' auf 'block' setzen).
    An Validator-Fehler kommt man manchmal gar nicht drum rum (beispielsweise die Einbindung von Flash mit <embed> - driver hat dazu mal eine Seite gepostet wie man das umgehen kann, lohnt sich aber imo nicht der Aufwand).