+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Horizontale UL Liste mit Bildern

  1. #1
    TP-Veteran danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE Avatar von danis`
    Registriert seit
    Dec 2003
    Ort
    Oldenburg i.H.
    Beiträge
    1.197

    Horizontale UL Liste mit Bildern

    Hi Leute - war scheinlich ne ziemlich dämliche Frage, aber - es muss sein

    Ich habe eine horizontale Liste, in dieser ist jedoch kein Text - sondern Bilder.

    Ohne Bilder funktioniert alles einwandfrei, habe es mit folgendem Code realisiert:

    HTML-Code:
    ul#newoffer{
    text-align: center;
    border: 1px solid black;
    background-color: silver;
    margin: 0; 
    padding: 0.8em;
    }
     
    ul#newoffer li {
    list-style: none;
    display: inline;
    margin: 0.4em; 
    padding: 0;
    }

    Alles schön horizontal nebeneinander.
    Sobald ich jetzt aber Bilder einbinde (Höhe 150px, Breite abhängig von Höhe) ist nix mehr horizontal.

    Bin ich zu blöd oder warum funktioniert das nicht?

    Achja - nochmal der Code der Liste mit Text:
    HTML-Code:
      <ul id="newoffer">
          <li>
              <a href="#">Text</a>
          </li>
      </ul>
    Und mit Bild:
    HTML-Code:
      <ul id="newoffer">
          <li>
              <a href="#"><img src="bild.png" />Text</a>
          </li>
      </ul>
    rallye-addicted. Motorsport at it's best

    Jap, irgendwann wird's noch.


  2. #2
    TP-Member koslowski macht alles soweit korrekt
    Registriert seit
    Mar 2009
    Beiträge
    60
    Hi,

    wenn ich das richtig sehe soll das ein grafisches Menü werden.

    Ich geb dir mal ein Beispiel, wie man sowas verwirklicht:

    Erstellung eines einfachen, horizontalen, grafischen Menüs, wo der Text auch im Bild ist:

    Mit Photoshop wird eine Grafik in der Größe von 120x80px erstellt. Sie beherbergt beide Linkzustände. Der eigentliche Link ist somit 120x40px groß und enthält jeweils auch den Linktext in Form z.B. einer schönen Schreibschrift.
    Normalzustand ist oben in der Grafik, der Hoverzustand darunter.


    Doctype ist "strict" um immer im Standardmodus zu sein.
    Beim Link der gerade aktuellen Seite wird <a> gegen <strong> ausgetauscht, damit er nicht auf sich selber zeigt.

    Ein leeres <span> wird vor dem Linktext eingefügt, es bekommt später die HG-Grafik zugewiesen.
    Die HG-Grafik soll per CSS den Linktext verdecken. Die dafür benötigte Technik ist eine Image-Replacement-Technik nach Gilder/Levin

    XHTML:
    Code:
    <!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="de" lang="de">
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Grafisches Menü</title>
    </head>
    <body>
    <ul>
        <li id="navi01"><strong><span></span>Startseite</strong></li>
        <li id="navi02"><a href="#"><span></span>Kontakt</a></li>
        <li id="navi03"><a href="#"><span></span>Galerie</a></li>
    </ul>
    </body>
    </html>
    Die Abstände werden erstmal auf null gesetzt. Die <ul> bekommt eine Breite und wird zentriert. <li> floatet , bekommt eine Breite und das Listenzeichen ausgeschaltet:
    Code:
    * {
        padding:0;
        margin:0;
    }
    ul  {
        width:400px;
        margin:2em auto;
    }
    
     li  {
        float:left;
        width:120px;
        list-style-type:none;
    }
    <a> und <strong> bekommen position:relative; damit sich das später absolut positionierte <span> mit der HG-Grafik daran orientieren kann.
    overflow:hidden ist dafür damit bei Schriftvergrößerung der Linktext des Markup's nicht darunter hervorlugen kann.
    Es wird zum Blockelement erhoben und kriegt die Breite von <li> und die Höhe der halben Grafik (ein Zustand halt!):
    Code:
     a,
     strong  {
          position:relative;
          overflow:hidden;
          display:block;
          width:100%;
          height:40px;
    }
    Der Normalzustand und der hervorgehobene Zustand der gerade aktuellen Seite wird definiert. Mit position:absolute verdeckt die Grafik den Linktext:
    Code:
    #navi01 a span  {
        position:absolute;
        width:100%;
        height:40px;
        top:0;
        left:0;
        background:url(startseite.jpg) no-repeat 0 0;
    }
     #navi01 strong span  {
           position:absolute;
        width:100%;
        height:40px;
        top:0;
        left:0;
        background:url(startseite.jpg) no-repeat 0 -40px;
    }
     #navi02 a span  {
           position:absolute;
        width:100%;
        height:40px;
        top:0;
        left:0;
        background:url(kontakt.jpg) no-repeat 0 0;
    }
    #navi02 strong span  {
           position:absolute;
        width:100%;
        height:40px;
        top:0;
        left:0;
        background:url(kontakt.jpg) no-repeat 0 -40px;
    }
    #navi03 a span  {
           position:absolute;
        width:100%;
        height:40px;
        top:0;
        left:0;
        background:url(galerie.jpg) no-repeat 0 0;
    }
    #navi03 strong span  {
           position:absolute;
        width:100%;
        height:40px;
        top:0;
        left:0;
        background:url(galerie.jpg) no-repeat 0 -40px;
    }
    Der untere Teil der Grafik wird durch das "hovern" per background-position ins Bild geschoben:
    Code:
    #navi01 a:hover span,
    #navi01 a:focus span,
    #navi02 a:hover span,
    #navi02 a:focus span,
    #navi03 a:hover span,
    #navi03 a:focus span  {
        background-position:0 -40px;
    }
    Mmh..., und damit ist auch der IE einverstanden??
    Nicht ganz:
    Er hat aber plötzlich vergessen wie es geht, das beim überfahren des Links aus dem Pfeil eine Hand werden muss.
    Das wird ihm per CC wieder beigebracht.
    Außerdem bleibt die Grafik des gerade gehoverten Menüpunktes im IE6 nach dem hovern oft in der hover-position stehen
    und springt nicht zurück auf die "Normal-Position".
    Der dafür definierte Hack mit background-position mutet unsinnig und absurd an, hilft aber.
    Code:
    <!--[if lte IE 7]>
      <style type="text/css">
       ul a span  {
        cursor:hand;
    }
     * html a:hover  {
        background-position:0 0;
    }
      </style>
    <![endif]-->
    Es ist evtl. darauf zu achten, das die Regel nur auf das betreffende Menü beschränkt werden sollte.
    Das kann sichergestellt werden, indem die ul eine id bekommt und die Regel per Nachfahrenselektor
    auf das betroffene Menü angewendet wird.

    Hoffe es ist verständlich beschrieben.

    koslowski

  3. #3
    TP-Veteran danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE danis` ist ein richtiges Arbeitstier - DANKE Avatar von danis`
    Registriert seit
    Dec 2003
    Ort
    Oldenburg i.H.
    Beiträge
    1.197
    Hi,
    danke für deine ausführliche Beschreibung

    Mein Problem besteht aber leider darin,
    dass ich die Grafik nicht via CSS einbinden kann, da der Pfad aus der SQL DB gelesen wird, und mir die Funktionen nicht in der CSS Datei zur Verfügung stehen..

    Binde ich die Grafik via CSS ein, ist es kein Problem...
    rallye-addicted. Motorsport at it's best

    Jap, irgendwann wird's noch.


  4. #4
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    wäre dss nichts für dich?
    computer tun nur das was man ihnen sagt, meistens

  5. #5
    TP-Insider Corsachriz bringt sich richtig ein Corsachriz bringt sich richtig ein Avatar von Corsachriz
    Registriert seit
    Apr 2006
    Ort
    nähe Köln
    Beiträge
    591
    Lade die Backgrounds doch per

    HTML-Code:
    class="ichbineineklasse" style="background:url();"
    Dann arbeitest du zwar mit CSS aber nicht extern.
    Alle weiteren Daten regelst du über die externe CSS mit der Klasse
    "ichbineineklasse"

    Chriz
    I like "selbstgemacht"!
    3 Backlinks aus deinem Artikel
    Fotos Online Preisvergleich
    Ich tausche Links - auch mit schwachen oder neuen Seiten. Schreib mir einfach

+ Antworten

Ähnliche Themen

  1. Horizontale Liste verschoben
    Von mylow im Forum HTML & CSS
    Antworten: 5
    Letzter Beitrag: 09.07.2008, 18:52
  2. Antworten: 3
    Letzter Beitrag: 13.12.2007, 15:07
  3. Horizontale Liste soll ganzen Raum nutzen
    Von Gubino im Forum HTML & CSS
    Antworten: 3
    Letzter Beitrag: 30.10.2007, 11:57
  4. Liste nur mit Bildern (mit Hover)
    Von holunda im Forum HTML & CSS
    Antworten: 5
    Letzter Beitrag: 22.06.2005, 18:09
  5. Antworten: 14
    Letzter Beitrag: 27.02.2005, 22:23

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51