Antworten auf deine Fragen:
Neues Thema erstellen

Navigation mittels "background-position"

Biernase

Nicht mehr ganz neu hier

In der Vergangenheit hatte ich immer einzelne Navigationselemente erstellt. Da es in Mode gekommen ist, sämtliche Navigationselemente in einer einzelnen Grafik abzuspeichern, wollte ich das nun auch einmal versuchen. Irgendwie ist mir das aber unklar.

Ich hoffe, ihr könnt mir das anhand einer Beispielnavigation verständlich erläutern. Nehmen wir eine fiktive Beispielnavigation aus drei Navigationspunkten an, die der Einfachheit alle 100 Pixel breit und 50 Pixel hoch sind. Dadurch ergibt sich eine Breite von 300 Pixeln und eine Höhe von 150 Pixeln.

Mein Code sieht so aus.
Code:
/* -------------------------------------------------------------------------------------- */
/* ----------------------------------| Navigation Main |------------------------------- */
/* -------------------------------------------------------------------------------------- */

ul#navi {
  position:absolute;
  top:295px;
  }
  
ul#navi li {
  float:left;
  text-indent:-9999px;
  }
  
ul#navi li a {
  position:absolute;
  top:-94px;
  left:176px;
  background:url(../images/menu-complete.jpg) 0 0 no-repeat;
  width:300px;
  height:50px;
  display:block;
  }
  
/* ------------------------------------| Eins |---------------------------------- */

ul#navi #eins {
  width:100px;
  background-position:0 0;
  }
  
ul#navi #eins:hover { background-position:0 -100px; }

ul#navi #eins:active { background-position:0 -50px; }

/* -------------------------------------| Zwei |---------------------------------- */

ul#navi #zwei {
  width:100px;
  background-position:-200px 0;
  }
  
ul#navi #zwei:hover { background-position:-200px -100px; }

ul#navi #zwei:active { background-position:-200px -50px; }

/* -------------------------------------| Drei |---------------------------------- */

ul#navi #drei {
  width:100px;
  background-position:-300px 0;
  }
  
ul#navi #drei:hover { background-position:-300px -100px; }

ul#navi #drei:active { background-position:-300px -50px; }

Code:
<ul id="navi">
          <li><a href="eins.html" title="Einse" id="eins">Eins</a></li>
          <li><a href="zwei.html" title="Zwei" id="zwei">Zwei</a></li>
          <li><a href="drei.html" title="Drei" id="drei">Drei</a></li>
        </ul>
 

Momo22m

Pixxel-Design / Lehrling

AW: Navigation mittels "background-position"

mmm ich bin zwar auch nicht so gut in css aber du kannst die hove zusammen legen spart kb ^^

so ich hab dir mal den code von meine Webseite gepost vielleicht hilft er dir

Css code

HTML:
div#header ul#subnavi {
    list-style:none;
    }
    
div#header ul#subnavi li a {
    height:39px;
    display:block;
    background:url(../Bilder/bg-subnavi.png) no-repeat;
    position:absolute;
    top:44px;
    width: 960px;
    }
    
div#header ul#subnavi li a.startseite {
    width:105px;
    background-position:0 0;
    left:340px;
    }
    
div#header ul#subnavi li a.auftrag {
    width:89px;
    background-position:0 -39px;
    left:473px;
    }
    
div#header ul#subnavi li a.links {
    width:67px;
    background-position:0 -78px;
    left:598px;
    }
    
div#header ul#subnavi li a.kontakt {
    width:90px;
    background-position:0 -117px;
    left:699px;
    }
    
div#header ul#subnavi li a.impressum {
    width:121px;
    background-position:0 -156px;
    left:820px;
    }
    
div#header ul#subnavi li a:hover,
div#header ul#subnavi li.active a {
    background:none;
    }


html code

HTML:
<ul id="subnavi">
       <li class="active"><a href="index.php" class=" startseite noText" title="Startseite"></a></li>
       <li><a href="auftrag.php" class="auftrag noText" title="Auftrag"></a></li>
       <li><a href="links.php" class="links noText" title="Links"></a></li>
       <li><a href="kontakt.php" class="kontakt noText" title="Kontakt"></a></li>
       <li><a href="impressum.php" class="impressum noText" title="Impressum"></a></li>
       </ul>

hoffe es hilft dir
 

Biernase

Nicht mehr ganz neu hier

AW: Navigation mittels "background-position"

Danke erst einmal. Aber eure Beispiele treffen die Problematik nicht ganz.

  • Momo hat, wenn ich seinen Code richtig verstanden habe, für jeden Navigationspunkt eine Grafik. Diese Grafik beinhaltet zwar alle Navigationszustände, dennoch sind es einzelne Grafiken.
  • In hubspe´s erstem Linkbeispiel (was genau auf mein Beispiel paßt) wird das Prinzip an nur einer Grafik erläutert, also ähnlich Momo´s Beispiel.
  • Und das Beispiel von medienfux basiert auf CSS3. Da CSS3 von den Browsern nur bedingt unterstützt wird und das auch nur von den neuesten Versionen, wäre das in meinem Fall etwas riskant.
Damit ihr vielleicht eher versteht, wie meine Grafik aufgebaut ist, hier mal eine Beispielgrafik.
 
Zuletzt bearbeitet:

owieortho

Aktives Mitglied

AW: Navigation mittels "background-position"

Bei der Navigation würde ich wirklich eher auf Textlinks und entsprechende CSS-Auszeichnung als auf Grafiken setzen. Bei der verwendung von Grafiken, auch für Icons, solltest Du Dich über sprites informieren.
 

sokie

Mod | Web

AW: Navigation mittels "background-position"

für solche Schaltflächen und deren Zustände brauchst du nicht einmal eine Grafik, sondern die ganz normalen css Regeln.
 

Fugel

rebmeM

PSD Beta Team
AW: Navigation mittels "background-position"

also ich löse das mit css immer so (auszug aus einer meiner seiten):

HTML:
#nav {
	width:838px;
	height:auto;
	top:187px;
	position:absolute;
	left:50%;
	margin-left:-419px;
	z-index:2;
}
#nav a {
	padding:24px;
	padding-bottom:25px;
	margin-top:40px;
	color:#333333;
	text-decoration:none;
}
#nav a:hover {
	padding:24px;
	padding-bottom:25px;
	margin-top:40px;
	background-color:#161616;
	color:#999999;
	text-decoration:none;
}
 

Biernase

Nicht mehr ganz neu hier

AW: Navigation mittels "background-position"

für solche Schaltflächen und deren Zustände brauchst du nicht einmal eine Grafik, sondern die ganz normalen css Regeln.

Kannst Du das näher erläutern?

Da diese Art der Navigationsgestalltung Neuland für mich ist, weiß ich nicht, welche "unterschiedlichen Wege hier nach Rom führen". Ich sitze gerade an einem Buch, in dem ein Beispiel (Code siehe oben) erklärt bzw. leicht angerissen wird. Die Beispieldatei dieses Beispiels funktioniert auch. Das das Buchbeispiel funktioniert, sehe ich. Das ist eben das, was ich derzeit zu 100% sagen kann. Meine Navigation jedoch will nicht so funktionieren, wie es der Erfinder im Sinn hatte, obwohl ich das Prinzip wohl verstanden habe.
 

Biernase

Nicht mehr ganz neu hier

AW: Navigation mittels "background-position"

Das war mir schon klar. Das Schwarz-Rot-Gelbe Grafik war ja nur eine Beispielgrafik (was auch dabei stand). Meine Navigation sieht dann schon etwas anders aus.
 

Biernase

Nicht mehr ganz neu hier

AW: Navigation mittels "background-position"

Es sieht so aus, als hätte ich den Fehler gefunden. Und ich hoffe, jemand kann mir das erklären.

Im Buchbeispiel steht das so in der CSS-Syntax.
Code:
ul#navi li a {
	[color=red][b]background-image:url(../images/menu-complete.jpg);
	background-repeat:no-repeat;[/b][/color]
	height:50px;
	display:block;
	}

Ich hatte das so geschrieben.
Code:
ul#navi li a {
	[color=red][b]background-image:url(../images/menu-complete.jpg) no-repeat;[/b][/color]
	height:50px;
	display:block;
	}

Um eine Zeile zu sparen, hatte ich das no-repeat hinter die Grafik gesetzt. Das habe ich auch so gelernt. Wieso scheint das in diesem Fall anders zu sein?
 

sokie

Mod | Web

AW: Navigation mittels "background-position"

ist nicht anders, die eigenschaft 'background-image' nimmt nur die url des bildes auf, das no-repeat müsste in der eigenschaft 'background-repeat' notiert werden. Die zusammenfassung ist nur in der allgemeinen eigenschaft 'background' möglich.
beispiel
Code:
background: #000000 url(mein/image/bg.png) right top no-repeat fixed;
in diesem fall behandelt die regel 'background' die eigenschaften:
background-color,
background-image,
background-position,
background-repeat und
background-attachment
in der Reihenfolge

das Buch hat recht, und du hast scheinbar etwas falsches gelernt.
 
Zuletzt bearbeitet:

cebito

undefined

AW: Navigation mittels "background-position"

Weil du im zweiten Fall nur background schreiben sollst. Bsp. für die Kurzform:

Code:
background:#ff0 url(../images/bgimage.jpg) top center no-repeat;
oder einzeln:

Code:
background-color:#ff0;
background-image:url(../images/bgimage.jpg);
background-position:top center;
background-repeat:no-repeat;

edith: @sokie - dito ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben