Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

main-menu: wie mit css stylen?

Eingetragen von HugiN (4)
am 29.12.2011 - 03:11 Uhr in
  • Themes & Theming
  • Drupal 7.x

Ich stehe vor folgendem Problem:

Ich habe ein Sprite, welches ich für die Hauptnavigation verwenden möchte. Und zwar wird jedes einzelne li Element mit einer separaten Klasse angesprochen. Das sieht dann etwa so aus:

HTML:

<div id="topnav">
<ul id="menu" class="menu">
<li class="menu-1"><a href="#"><span>Home</span></a></li> 
<li class="menu-2"><a href="#"><span>Game</span></a></li>  
<li class="menu-3"><a href="#"><span>Forum</span></a></li>

<li class="menu-4"><a href="#"><span>Wiki</span></a></li>
<li class="menu-5"><a href="#"><span>Media</span></a></li>
<li class="menu-6"><a href="#"><span>Services</span></a></li>
</ul>
</div><!-- END #topnav -->

CSS:

#topnav {
float:right;
margin: 35px 15px 0 0;
}
/*BASIC MENU STYLING*/
ul#menu{
margin:0; padding:0;
list-style:none;
clear:both;
} 
#menu li{
overflow:hidden; display:inline; float:left;
}
/*LOCATE TO THE SPRITE FOR THE MENU*/
#menu li a{
background:url('../css/images/page_elements/topnavi.png') no-repeat;
width:100%; height:100%;
display:block;
} 
/*BASIC LIST TEXT STYLING*/
li a .menu {
text-align: center;
color: #FFE2AD;
text-decoration: none;
text-transform: uppercase;
text-shadow: 0 1px 0 black, 0 0 5px #A6432D;
}
li a:hover a:active {}
/*SPAN TAG FOR ALIGNMENT OF THE TEXT INSIDE THE BUTTONS*/
#menu li a span {
display: block;
text-align: center;
height: 20px;
padding-top: 50px;
padding-right: 2px;
}
/* INDIVIDUAL MENU LINKS */
#menu li.menu-1{width:108px; height:75px;} 
#menu li.menu-1 a{background-position:0px 0px;} 
#menu li.menu-1 a:hover{background-position:0px -75px;} 

#menu li.menu-2{width:108px; height:75px;} 
#menu li.menu-2 a{background-position:-108px 0px;} 
#menu li.menu-2 a:hover{background-position:-108px -75px;}

#menu li.menu-3{width:108px; height:75px;} 
#menu li.menu-3 a{background-position:-216px 0px;} 
#menu li.menu-3 a:hover{background-position:-216px -75px;}

#menu li.menu-4{width:108px; height:75px;} 
#menu li.menu-4 a{background-position:-324px 0px;} 
#menu li.menu-4 a:hover{background-position:-324px -75px;}

#menu li.menu-5{width:108px; height:75px;} 
#menu li.menu-5 a{background-position:-432px 0px;} 
#menu li.menu-5 a:hover{background-position:-432px -75px;}

#menu li.menu-6{width:110px; height:75px;} 
#menu li.menu-6 a{background-position:-540px 0px;} 
#menu li.menu-6 a:hover{background-position:-540px -75px;}

Wie kann ich erreichen, dass Drupal das Menü als Liste auszeichnet, die ich dann mit meinem CSS ansprechen kann?

‹ In einem Field Text ersetzen Eigene Templates für das Foren-Modul ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi HugIn Zitat: Wie kann ich

Eingetragen von 1kubik (903)
am 29.12.2011 - 11:46 Uhr

Hi HugIn

Zitat:

Wie kann ich erreichen, dass Drupal das Menü als Liste auszeichnet, die ich dann mit meinem CSS ansprechen kann?

na durch theming !?!
wie sieht denn die struktur von deiner 'Hauptnavigation' aus?
Bzw welches Theme benurt du?

Theming ist im Prinzip ganz einfach (wenn mensch weiss wie :))
ein Weg wäre:
-> du erstellst ein Subtheme
-> du identifizierst das Array Element welches als 'Hauptnavigation' zb in deiner page.tpl.php gerendert wird
installiere dir dazu das modu devel bzw theme developer
drupal.org/project/devel
damit kann du dir schön das array ausgeben lassen mit
dsm($content)
dann kannst du das deinen bedürfnissen nach anpassen

besser ist es wenn du dir gleich das template für das menu vornimmst
und davon ein eigenes template anlegest in deinem theme
welches template da genutzt wird und wie du das benannt werden muss
kannst du mit dem modul
drupal.org/project/devel_themer
sehen

besten gruss
stef

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank für Deine

Eingetragen von HugiN (4)
am 29.12.2011 - 13:02 Uhr

Vielen Dank für Deine Antwort. Hab natürlich vergessen zu schreiben, dass ich ein eigenes Subtheme von ZEN erstellt habe. Allerdings ist es mein erstes eigenes Theme mit Drupal. In meiner page--front.tpl.php wird mein main menu folgendermassen gerendert:

    <?php if ($page['navigation'] || $main_menu): ?>
      <div id="navigation"><div class="section clearfix">

        <?php print theme('links__system_main_menu', array(
         
'links' => $main_menu,
         
'attributes' => array(
           
'id' => 'main-menu',
           
'class' => array('links', 'inline', 'clearfix'),
          ),
         
'heading' => array(
           
'text' => t('Main menu'),
           
'level' => 'h2',
           
'class' => array('element-invisible'),
          ),
        ));
?>


        <?php print render($page['navigation']); ?>

      </div></div><!-- /.section, /#navigation -->
    <?php endif; ?>

Ich sehe, dass id=main-menu und class=links, inline, clearfix ist. Das ist ja schon mal gut - aber: Damit ich die unterschiedlichen Bereiche des Sprites ansprechen kann, brauche ich für jeden einzelnen Menupunkt eine einzigartige und fest vergebene class. Wenn ich mir also den Quelltext der Seite im Browser ansehe, dann schaut das folgendermassen aus:

<ul id="main-menu" class="links inline clearfix">
  <li class="menu-372 first"><a href="/drupal/taxonomy/term/37" title="">News</a></li>
  <li class="menu-357"><a href="/drupal/taxonomy/term/7" title="">Game Info</a></li>
  <li class="menu-358"><a href="/drupal/taxonomy/term/9" title="">Competitive</a></li>
  <li class="menu-359"><a href="/drupal/taxonomy/term/8" title="">Media</a></li>
  <li class="menu-385 last"><a href="/drupal/content/about" title="Find out everything about us">About</a></li>
</ul>

Meine Frage also: kann ich nun einfach im CSS die class z.b. "menu-357" nennen und es funktioniert? Oder werden diese Menüklassen gegebenenfalls dynamisch verändert?

Gruss - Thomas

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 5 Tagen
  • Hey danke
    vor 1 Woche 6 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Stunde
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 30 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association