CSS Menü Ausrichtung ändern: vertikal zu horizontal

CSS Menü Ausrichtung ändern: vertikal zu horizontal

Beitragvon kazuhisa » 13.09.2010, 18:03

Hallo Zusammen!

Ich habe eine Frage zur Änderung eines vertikalen Menüs, dass ich gern horizontal ausgerichtet haben möchte.

Kleine Frage, riesen Quelltext:
Code: Alles auswählen
<html>
   <head>
      <title>css menue</title>
      <style type="text/css">
      <!--
   
      body {
   font-size: .8em;
}
      /* The wrapper determines the width of the menu elements */
#menuwrapper {
   width: 250px;
}

/* Unless you know what you do, do not touch this */
#primary-nav, #primary-nav ul {
   list-style: none;
   margin: 0;
   padding: 0;
   width: 100%;
   margin-left:0; /* Bei menu mit Rahmen auf -1px einstellen */
   z-index:250; /* Für GoogleMaps */
}
#primary-nav ul {
   position: absolute;
   top: 0;
   left: 100%;
   display: none;
}
#primary-nav li {
   margin-bottom: -1px;
   position: relative;
}

/* Styling the basic apperance of the menu elements !!!!! */
#primary-nav a {
   border:1px solid #FFFFFF; /* #212C32 */
   border-left:0 solid #212C32; /* #212C32 */
   border-right:0 solid #212C32; /* #212C32 */
   display: block;
   margin: 0;
   padding: 9px 0 10px 20px;
   color: #FFFFFF;     /* #666666 Fontfarbe im Menü! */
   text-decoration: none;
   background: transparent;
   min-height:1em; /* Fixes IE7 whitespace bug*/
}

#primary-nav li, #primary-nav li.menuparent {
   background-color: #008855; /* Menü Hintergrund*/
   min-height:1em; /* Fixes IE7 bug*/
}

/* Styling the basic apperance of the active page elements (shows what page in the menu is being displayed) !!!!! */
#primary-nav li.menuactive {
   background-color: #00BB75; /* Menü Hintergrund - aktiv*/
}

/* Styling the apperance of menu items on hover !!!!! */
#primary-nav li:hover,
#primary-nav li.menuh,
#primary-nav li.menuparenth,
#primary-nav li.menuactiveh {
background-color: #00BB75; /* Menü Hintergrund - hover*/
}

/* Styling the basic apperance of the menuparents - here styled the same on hover (fixes IE bug) */
#primary-nav li.menuparent,
#primary-nav li.menuparent:hover,
#primary-nav li.menuparenth {
   background-image: url(../images/etc/pfeil.gif);
   background-position: center right;
   background-repeat: no-repeat;
}

/* The magic - set to work for up to a 3 level menu, but can be increased unlimited */
#primary-nav ul,
#primary-nav li:hover ul,
#primary-nav li:hover ul ul,
#primary-nav li.menuparenth ul,
#primary-nav li.menuparenth ul ul {
   display: none;
}
#primary-nav li:hover ul,
#primary-nav ul li:hover ul,
#primary-nav ul ul li:hover ul,
#primary-nav li.menuparenth ul,
#primary-nav ul li.menuparenth ul,
#primary-nav ul ul li.menuparenth ul {
   display: block;
}

/* IE Hack, will cause the css to not validate */
#primary-nav li, #primary-nav li.menuparenth { _float: left; _height: 1%; }
#primary-nav li a { _height: 1%; }

/* section header */
#primary-nav li.sectionheader {
   border-left: 1px solid #FFF; /* #212C32 */
   border-top: 1px solid #FFF; /* #212C32 */
   font-size: 130%;
   font-weight: bold;
   /*padding: 1.5em 0 0.8em 0.5em;*/
   padding: 6px 0 6px 15px;
   background-color: #FFF;
   margin: 0;
   width: 100%;
}

/* separator */
#primary-nav li hr.separator {
   display:block;
   height: 0;
   color: #ABB0B6;
   background-color:#D8DCE1;
   width: 100%;
   border:0;
   margin:0;
   padding:0;
   border-top: 1px solid #FFF; /* #212C32 */
   border-right: 1px solid #FFF; /* #212C32 */
}
      -->
      </style>
   </head>
   <body>
   
<div id="menuwrapper">
<ul id="primary-nav">
<li class="menuactive">
<a class="menuactive" href="index.php"><span>eins</span></a>
</li>
<li class="menuparent">
<a class="menuparent" ><span class="sectionheader">zwei</span></a>
<ul class="unli">
<li>
<a href="index.php?page=zwei_eins"><span>zwei_eins</span></a>
</li>
<li>
<a href="index.php?page=zwei_zwei"><span>zwei_zwei</span></a>
</li>
<li>
<a href="index.php?page=zwei_drei"><span>zwei_drei</span></a>
</li>
</ul>
</li>
<li>
<a href="index.php?page=drei"><span>drei</span></a>
</li>
<li>
<a href="index.php?page=drei"><span>vier</span></a>
</li>
<li>
<a href="index.php?page=fuenf"><span>f&uuml;nf</span></a>
</li>
</ul>
<div style="clear: both;"></div>
</div>
   </body>
</html>

Da das Menü plus Seite noch im Aufbau ist, kann ich keinen Link posten, sorry!
Ich habe den Quelltext so angelegt, dass er gesamt als .html gespeichert werden kann, um die 'Arbeit' zu erleichtern.

Wie ändert man die Ausrichtung von CSS-Menüs?
Lässt sich dabei auch die Ausrichtung der Submenüs mit ändern, ich hätte gern ein horizontales Mainmenü mit vertikalem Untermenü.

Ich bin für jeden Tipp dankbar!
kazuhisa
neu hier
 
Beiträge: 7
Registriert: 14.05.2010, 13:16

Re: CSS Menü Ausrichtung ändern: vertikal zu horizontal

Beitragvon sejuma » 13.09.2010, 19:38

Generell indem du die li's mit einem float: left; versiehst. Beim Ausklappmenue sind dann noch einige Positionierungen zu beachten.
Sieh dir mal dieses Beispiel an: http://www.ohne-css.gehts-gar.net/0066.php
Bild
sejuma
Vielposter
 
Beiträge: 805
Registriert: 15.07.2009, 17:46

Re: CSS Menü Ausrichtung ändern: vertikal zu horizontal

Beitragvon kazuhisa » 14.09.2010, 09:13

sejuma hat geschrieben:Generell indem du die li's mit einem float: left; versiehst. Beim Ausklappmenue sind dann noch einige Positionierungen zu beachten.

Danke, das ausrichten hat durch float: left wunderbar geklappt.

Die Positionierung der Submenüs habe ich über das anlegen eines neuen

Code: Alles auswählen
#primary-nav ul.unli {
   position: absolute;
   top: 130px;
   left: 0;
   display: none;
}
#primary-nav li.unli  {
   border: 1px solid #FFFFFF !important;
   height: 30px !important;
}

unli - Wertes hinbekommen.
Aber leider habe ich noch ein gestaltungstechnisches Problem, dass ich nicht lösen kann, ich bekomm's einfach nicht hin:
Ich möchte gern, dass sich das Submenü unabhängig vom Mainmenü gestalten lässt, Höhe, Breite, Hintergrundfarbe u. Hintergrundfarbe on hover.

Ich möchte dass das Mainmenü eine item-Größe von 145 x 130px mit unten angeordneter Menübezeichnung (z.B. Home, Impressum, etc.) hat. Über vertical-align lässt sich der Text nicht unten positionieren, padding war das einzige was bei mir funktioniert hat. Gibt's vielleicht eine alternative Lösung, um Text in einem block vertikal zu positionieren?
Das Submenü/item soll eine Höhe von vielleicht 30px haben (+/-), und einen Rahmen um jedes item.
Wie man oben im Code sieht habe ich versucht es über !important zu lösen, leider ohne Erfolg, die Angaben des Mainmenüs werden auf das Submenü übergeben.

Mein teils erfolgreicher Quelltext hier, wiedermals als vollst. HTML-Datei:
Code: Alles auswählen
<html>
   <head>
      <title>css menue</title>
<style type="text/css">
      <!--
   
      body {
   font-size: .8em;
}
      /* The wrapper determines the width of the menu elements */
#menuwrapper {
   width: 900px;
}

/* Unless you know what you do, do not touch this */
#primary-nav, #primary-nav ul {
   list-style: none;
   margin: 0;
   padding: 0;
   width: 100%;
   margin-left:0; /* Bei menu mit Rahmen auf -1px einstellen */
   z-index:250; /* Für GoogleMaps */
}
#primary-nav ul {
   position: absolute;
   top: 0;
   left: 0;
   display: none;
}

/* Submenü */
#primary-nav ul.unli {
   position: absolute;
   top: 130px;
   left: 0;
   display: none;
}


#primary-nav li.unli  {
   border: 1px solid #FFFFFF;
   height: 30px !important;
}
/* /Submenü */


#primary-nav li {
   margin-bottom: -1px;
   position: relative;
   float: left; /* für horizontales menu */
   width: 145px;
   height: 130px;
   border-right:1px solid #FFFFFF;
}


/* Styling the basic apperance of the menu elements !!!!! */
#primary-nav a {
   border:0 solid #FFFFFF; /* #212C32 */
   border-left:0 solid #212C32; /* #212C32 */
   border-right:0 solid #212C32; /* #212C32 */
   display: block;
   margin: 0;
   padding: 10px 0;
   color: #FFFFFF;     /* Fontfarbe im Menü! */
   text-align: center;
   text-decoration: none;
   background: transparent;
   min-height: 1em; /* Fixes IE7 whitespace bug*/
}

#primary-nav li, #primary-nav li.menuparent {
   background-color: #008855; /* Menü Hintergrund*/
   min-height:1em; /* Fixes IE7 bug*/
}

/* Styling the basic apperance of the active page elements (shows what page in the menu is being displayed) !!!!! */
#primary-nav li.menuactive {
   background-color: #00BB75; /* Menü Hintergrund - aktiv*/
}


/* Styling the apperance of menu items on hover !!!!! */
#primary-nav li:hover,
#primary-nav li.menuh,
#primary-nav li.menuparenth,
#primary-nav li.menuactiveh {
background-color: #00BB75; /* Menü Hintergrund - hover*/
}


/* Styling the basic apperance of the menuparents - here styled the same on hover (fixes IE bug) */
#primary-nav li.menuparent,
#primary-nav li.menuparent:hover,
#primary-nav li.menuparenth {
   background-image: url(../images/etc/pfeil.gif);
   background-position: center right;
   background-repeat: no-repeat;
}


/* The magic - set to work for up to a 3 level menu, but can be increased unlimited */
#primary-nav ul,
#primary-nav li:hover ul,
#primary-nav li:hover ul ul,
#primary-nav li.menuparenth ul,
#primary-nav li.menuparenth ul ul {
   display: none;
}
#primary-nav li:hover ul,
#primary-nav ul li:hover ul,
#primary-nav ul ul li:hover ul,
#primary-nav li.menuparenth ul,
#primary-nav ul li.menuparenth ul,
#primary-nav ul ul li.menuparenth ul {
   display: block;
}


/* IE Hack, will cause the css to not validate */

#primary-nav li, #primary-nav li.menuparenth { _float: left; _height: 1%; }
#primary-nav li a { _height: 1%; }


/* section header */
#primary-nav li.sectionheader {
   border-left: 0 solid #FFF;
   border-top: 0 solid #FFF;
   font-size: 130%;
   font-weight: bold;
   /* padding: 10px 0; */
   background-color: #FFF;
   margin: 0;
   width: 100%;
}


/* separator */
#primary-nav li hr.separator {
   display:block;
   height: 0;
   color: #ABB0B6;
   background-color:#D8DCE1;
   width: 100%;
   border:0;
   margin:0;
   padding:0;
   border-top: 1px solid #FFF;
   border-right: 1px solid #FFF;
}
      -->
</style>
   </head>
   <body>
   
<div id="menuwrapper">

<ul id="primary-nav">
<li class="menuactive">
<a class="menuactive" href="index.php"><span>eins</span></a>
</li>

<li class="menuparent">
<a class="menuparent" ><span class="sectionheader">zwei</span></a>

<ul class="unli">
<li>
<a href="index.php?page=zwei_eins"><span>zwei_eins</span></a>
</li>
<li>
<a href="index.php?page=zwei_zwei"><span>zwei_zwei</span></a>
</li>
<li>
<a href="index.php?page=zwei_drei"><span>zwei_drei</span></a>
</li>
</ul>

</li>
<li>
<a href="index.php?page=drei"><span>drei</span></a>
</li>
<li>
<a href="index.php?page=drei"><span>vier</span></a>
</li>
<li>
<a href="index.php?page=fuenf"><span>f&uuml;nf</span></a>
</li>
</ul>
<div style="clear: both;"></div>
</div>
   </body>
</html>

Ich hoffe, ich bekomme auch hierzu eure Unterstützung?
kazuhisa
neu hier
 
Beiträge: 7
Registriert: 14.05.2010, 13:16

Re: CSS Menü Ausrichtung ändern: vertikal zu horizontal

Beitragvon sejuma » 14.09.2010, 10:03

Die individuelle Gestaltung der Sublinks sollte mit

.unli li {...}
.unli li a {...}

usw. möglich sein.

Die vertikale Textzentrierung erreichst du mit line-height.
Verwende einen Wert, welcher der Höhe des Linkbuttons entspricht.
Bild
sejuma
Vielposter
 
Beiträge: 805
Registriert: 15.07.2009, 17:46

Re: CSS Menü Ausrichtung ändern: vertikal zu horizontal

Beitragvon kazuhisa » 14.09.2010, 14:14

sejuma hat geschrieben:Die vertikale Textzentrierung erreichst du mit line-height.
Verwende einen Wert, welcher der Höhe des Linkbuttons entspricht.

Das funktioniert und die gesamte Fläche ist klickbar. Super!

sejuma hat geschrieben:Die individuelle Gestaltung der Sublinks sollte mit

.unli li {...}
.unli li a {...}

usw. möglich sein.

Das funktioniert leider nicht so gut, liegt es vielleicht daran, dass es classes sind und keine ID's?

Mein Versuch:
/* Submenü */
#primary-nav ul.unli {
position: absolute;
top: 130px;
left: 0;
display: none;
}

.unli li {
display: block;
border: 1px solid #333;
height: 30px;
width: 300px;
}

.unli li a {
display: block;
text-align: left;
background-color: #EEE;
}

.unli li a:hover
{
display: block;
background-color: #CCC;
}

/* /Submenü */

Die Hauptnavigation sieht jetzt perfekt aus, Sie Subnavigation glänzt durch für mich unlösbare Fehler:

1. Die angegebene Weite von 300px wird geschnitten auf die Weite der Hauptnavigation-items.
2. Der im 30px hohen item enthaltene Text ist nicht zu sehen, ich vermute, er verschwindet durch den neuen line-height: 180px;, den ich den li's zugewiesen habe!?
3. Die angegebene background-color wird nicht angezeigt, angezeigt wird die Hintergrundfarbe plus hover der Hauptnavigation. Das ist wirklich kompliziert,

puuhhh, ich krieg's nicht hin :cry:


Der momentane Stand:
Code: Alles auswählen
<html>
   <head>
      <title>css menue</title>
<style type="text/css">
      <!--
      body {
   font-size: .8em;
}
      /* The wrapper determines the width of the menu elements */
#menuwrapper {
   width: 900px;
}

/* Unless you know what you do, do not touch this */
#primary-nav, #primary-nav ul {
   list-style: none;
   margin: 0;
   padding: 0;
   width: 100%;
   margin-left:0; /* Bei menu mit Rahmen auf -1px einstellen */
   z-index:250; /* Für GoogleMaps */
}
#primary-nav ul {
   position: absolute;
   top: 0;
   left: 0;
   display: none;
}


/* Submenü */

#primary-nav ul.unli {
   position: absolute;
   top: 130px;
   left: 0;
   display: none;
}

.unli li {
display: block;
border: 1px solid #333;
height: 38px;
width: 300px;
}

.unli li a {
display: block;
text-align: left;
background-color: #EEE;
}

.unli li a:hover
{
display: block;
background-color: #CCC;
}

/* /Submenü */


#primary-nav li {
   margin-bottom: -1px;
   position: relative;
   float: left; /* für horizontales menu */
   width: 145px;
   border-right:1px solid #FFFFFF;
}


/* Main-Menü items */
#primary-nav a {
   border:0 solid #FFFFFF; /* #212C32 */
   border-left:0 solid #212C32; /* #212C32 */
   border-right:0 solid #212C32; /* #212C32 */
   display: block;
   height: 130px; /* Menü-Höhe */
   line-height: 180px; /* Abstand Menü-Eintrag */
   margin: 0;
   padding: 0;
   color: #FFFFFF;     /* Fontfarbe im Menü! */
   text-align: center;
   text-decoration: none;
   background: transparent;
   min-height: 1em; /* Fixes IE7 whitespace bug*/
}

#primary-nav li, #primary-nav li.menuparent {
   background-color: #008855; /* Menü Hintergrund*/
   min-height:1em; /* Fixes IE7 bug*/
}

/* Styling the basic apperance of the active page elements (shows what page in the menu is being displayed) !!!!! */
#primary-nav li.menuactive {
   background-color: #00BB75; /* Menü Hintergrund - aktiv*/
}


/* Styling the apperance of menu items on hover !!!!! */
#primary-nav li:hover,
#primary-nav li.menuh,
#primary-nav li.menuparenth,
#primary-nav li.menuactiveh {
background-color: #00BB75; /* Menü Hintergrund - hover*/
}


/* Styling the basic apperance of the menuparents - here styled the same on hover (fixes IE bug) */
#primary-nav li.menuparent,
#primary-nav li.menuparent:hover,
#primary-nav li.menuparenth {
   background-image: url(../images/etc/pfeil.gif);
   background-position: center right;
   background-repeat: no-repeat;
}


/* The magic - set to work for up to a 3 level menu, but can be increased unlimited */
#primary-nav ul,
#primary-nav li:hover ul,
#primary-nav li:hover ul ul,
#primary-nav li.menuparenth ul,
#primary-nav li.menuparenth ul ul {
   display: none;
}
#primary-nav li:hover ul,
#primary-nav ul li:hover ul,
#primary-nav ul ul li:hover ul,
#primary-nav li.menuparenth ul,
#primary-nav ul li.menuparenth ul,
#primary-nav ul ul li.menuparenth ul {
   display: block;
}


/* IE Hack, will cause the css to not validate */

#primary-nav li, #primary-nav li.menuparenth { _float: left; _height: 1%; }
#primary-nav li a { _height: 1%; }


/* section header */
#primary-nav li.sectionheader {
   border-left: 0 solid #FFF;
   border-top: 0 solid #FFF;
   font-size: 130%;
   font-weight: bold;
   /* padding: 10px 0; */
   background-color: #FFF;
   margin: 0;
   width: 100%;
}


/* separator */
#primary-nav li hr.separator {
   display:block;
   height: 0;
   color: #ABB0B6;
   background-color:#D8DCE1;
   width: 100%;
   border:0;
   margin:0;
   padding:0;
   border-top: 1px solid #FFF;
   border-right: 1px solid #FFF;
}
      -->
</style>

   </head>
   <body>
   
<div id="menuwrapper">

<ul id="primary-nav">
<li class="menuactive">
<a class="menuactive" href="index.php"><span>eins</span></a>
</li>

<li class="menuparent">
<a class="menuparent" ><span class="sectionheader">zwei</span></a>

<ul class="unli">
<li>
<a href="index.php?page=zwei_eins"><span>zwei_eins</span></a>
</li>
<li>
<a href="index.php?page=zwei_zwei"><span>zwei_zwei</span></a>
</li>
<li>
<a href="index.php?page=zwei_drei"><span>zwei_drei</span></a>
</li>
</ul>

</li>
<li>
<a href="index.php?page=drei"><span>drei</span></a>
</li>
<li>
<a href="index.php?page=drei"><span>vier</span></a>
</li>
<li>
<a href="index.php?page=fuenf"><span>f&uuml;nf</span></a>
</li>
</ul>
<div style="clear: both;"></div>
</div>

   </body>
</html>

kazuhisa
neu hier
 
Beiträge: 7
Registriert: 14.05.2010, 13:16

Re: CSS Menü Ausrichtung ändern: vertikal zu horizontal

Beitragvon sejuma » 14.09.2010, 19:03

Also ganz erhlich: Bei deinen vielen Klassen und Verschachtelungen blick ich nicht mehr durch.
Werden die denn tatsächlich alle benötigt, oder kannst du das mal auf das Wesentliche reduzieren?

Ein Teil, aber wohl nicht alles und nicht alles richtig spricht darauf an:
ul.unli li a:link
Bild
sejuma
Vielposter
 
Beiträge: 805
Registriert: 15.07.2009, 17:46

Re: CSS Menü Ausrichtung ändern: vertikal zu horizontal

Beitragvon kazuhisa » 14.09.2010, 20:23

sejuma hat geschrieben:Also ganz erhlich: Bei deinen vielen Klassen und Verschachtelungen blick ich nicht mehr durch.
Werden die denn tatsächlich alle benötigt, oder kannst du das mal auf das Wesentliche reduzieren?

Was genau davon zwingend notwendig ist kann ich nicht sagen, der HTML-Code wird vom ausgesuchten CMS produziert. Das CSS habe ich vom Original, den Rest der Geschichte kennst Du, ich habe probiert die Ausrichtung meiner Vorstellung nach anzupassen. Leider vergebens.

Ich verstehe das der Aufwand zu groß ist, bei meiner Thread-Erstellung konnte ich nicht wissen wie schwierig die Änderungen sind. Sorry.
Ich würde die Arbeit auch gern bezahlen, falls Du oder sonst jemand Interesse hat, lasst mich per PN wissen wie teuer eine Anpassung des CSS nach meinen o.g. Vorstellungen ist.

Danke
kazuhisa
neu hier
 
Beiträge: 7
Registriert: 14.05.2010, 13:16


Moderatoren: Laus, Moderatoren

Ähnliche Beiträge zu "CSS Menü Ausrichtung ändern: vertikal zu horizontal"

Zurück zu: CSS für Anfänger

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste