[Frage] Superfish-Menü unterschiedlich färben? TYPO3-Version: 6.1.1

  • cherry cherry
    Jedi-Meister
    0 x
    415 Beiträge
    0 Hilfreiche Beiträge
    07. 11. 2013, 18:05

    Hallo,
    ich habe das Superfish-Menü (Aufklappmenü) in die Seite eingebaut. Es gibt 6 Hauptnavigationspunkte mit jeweils bis zu 8 Unterpunkten. Ist es möglich, jedem Hauptnavigationspunkt eine eigene (Hintergrund-)Farbe zuzuweisen?


  • 1
  • etux etux
    Jedi-Meister
    0 x
    360 Beiträge
    13 Hilfreiche Beiträge
    08. 11. 2013, 06:32

    Natürlich – über CSS. ;)
    Die Listenelementen der ersten Ebene bräuchten bloß Klassen oder IDs.

    Die Klassen könnte man auch den Links zuordnen. Will man aber die zweite Ebene in Abhängigkeit des jeweiligen Menüpunktes der Ersten formatieren, sollten die Listenelementen (li) die Klassen bekommen.

  • cherry cherry
    Jedi-Meister
    0 x
    415 Beiträge
    0 Hilfreiche Beiträge
    08. 11. 2013, 12:39

    OK, danke. Ich habe es jetzt mal ausprobiert und teilweise Erfolog gehabt.
    Hier mal die CSS-Datei von Superfish die das steuert:

    1. /*** ESSENTIAL STYLES ***/
    2. .sf-menu, .sf-menu * {
    3. margin: 0;
    4. padding: 0;
    5. list-style: none;
    6. }
    7. .sf-menu {
    8. line-height: 0.8;
    9. }
    10. .sf-menu ul {
    11. position: absolute;
    12. width: 10em; /* left offset of submenus need to match (see below) */
    13. }
    14. .sf-menu ul li {
    15. width: 100%;
    16. }
    17. .sf-menu li:hover {
    18. visibility: inherit; /* fixes IE7 'sticky bug' */
    19. }
    20. .sf-menu li {
    21. float: left;
    22. height: 25px;
    23. position: relative;
    24. }
    25. .sf-menu a {
    26. display: block;
    27. position: relative;
    28. }
    29. .sf-menu li:hover ul,
    30. .sf-menu li.sfHover ul {
    31. left: 0;
    32. top: 28px; /* match top ul list item height */
    33. z-index: 99;
    34. }
    35. ul.sf-menu li:hover li ul,
    36. ul.sf-menu li.sfHover li ul {
    37. top: -999em;
    38. }
    39. ul.sf-menu li li:hover ul,
    40. ul.sf-menu li li.sfHover ul {
    41. left: 10em; /* match ul width */
    42. top: 0;
    43. }
    44. ul.sf-menu li li:hover li ul,
    45. ul.sf-menu li li.sfHover li ul {
    46. top: -999em;
    47. }
    48. ul.sf-menu li li li:hover ul,
    49. ul.sf-menu li li li.sfHover ul {
    50. left: 10em; /* match ul width */
    51. top: 0;
    52. }
    53. .mainnavi{ font-family:Arial, Helvetica, sans-serif; font-size:14px; color:#000000; width: auto; text-align:left;}
    54. .mainnavi a:link{ font-family:Arial, Helvetica, sans-serif; font-size:14px; color:#000000; width: auto; text-align:left;}
    55.  
    56. .secnavi{ font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#f2f2f2; width: auto; text-align:left;}
    57. .secnavi a:link{ font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#f2f2f2; width: auto; text-align:left;}
    58.  
    59.  
    60. /*** DEMO SKIN ***/
    61. .sf-menu {
    62. float: left;
    63. }
    64. .sf-menu a {
    65.  
    66. border-top: 0px solid #9c9085;
    67. padding: 8px;
    68. text-decoration:none;
    69. }
    70. .sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/
    71.  
    72. }
    73. .sf-menu li {
    74.  
    75. }
    76.  
    77. .m1{
    78. background: none;
    79. }
    80.  
    81. .m2{
    82. background: none;
    83. }
    84.  
    85. .m1 sfHover{
    86. background-color:#006600;
    87. }
    88.  
    89. .m2 sfHover{
    90. background-color:#FFFF00;
    91. }
    92.  
    93. .sf-menu li li {
    94. background-color:#FFFF00;
    95. filter:alpha(opacity=80);
    96. -moz-opacity: 0.80;
    97. opacity: 0.80;
    98. border-bottom: 1px solid #fff;
    99. }
    100.  
    101. .sf-menu li li li {
    102. background: #9e1627;
    103. filter:alpha(opacity=80);
    104. -moz-opacity: 0.80;
    105. opacity: 0.80;
    106. border-left: 1px solid #fff;
    107. }
    108. .sf-menu li:hover, .sf-menu li.sfHover,
    109. .sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
    110. background: none;
    111. outline: 0;
    112. }
    113.  
    114. /*** arrows **/
    115. .sf-menu a.sf-with-ul {
    116. font-family:Arial, Helvetica, sans-serif;
    117. font-size:13px;
    118. color:#000;
    119. padding-right: 2.25em;
    120. min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */
    121. }
    122. .sf-sub-indicator {
    123. position: absolute;
    124. display: block;
    125. right: .75em;
    126. top: 1.05em; /* IE6 only */
    127. width: 10px;
    128. height: 10px;
    129. text-indent: -999em;
    130. overflow: hidden;
    131. background: url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
    132. }
    133. a > .sf-sub-indicator { /* give all except IE6 the correct values */
    134. top: .8em;
    135. background-position: 0 -100px; /* use translucent arrow for modern browsers*/
    136. }
    137. /* apply hovers to modern browsers */
    138. a:focus > .sf-sub-indicator,
    139. a:hover > .sf-sub-indicator,
    140. a:active > .sf-sub-indicator,
    141. li:hover > a > .sf-sub-indicator,
    142. li.sfHover > a > .sf-sub-indicator {
    143. background-position: -10px -100px; /* arrow hovers for modern browsers*/
    144. }
    145.  
    146. /* point right for anchors in subs */
    147. .sf-menu ul .sf-sub-indicator { background-position: -10px 0; }
    148. .sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }
    149. /* apply hovers to modern browsers */
    150. .sf-menu ul a:focus > .sf-sub-indicator,
    151. .sf-menu ul a:hover > .sf-sub-indicator,
    152. .sf-menu ul a:active > .sf-sub-indicator,
    153. .sf-menu ul li:hover > a > .sf-sub-indicator,
    154. .sf-menu ul li.sfHover > a > .sf-sub-indicator {
    155. background-position: -10px 0; /* arrow hovers for modern browsers*/
    156. }
    157.  
    158. /*** shadows for all but IE6 ***/
    159. .sf-shadow ul {
    160. /*background: url('../images/shadow.png') no-repeat bottom right;*/
    161. padding: 0 8px 9px 0;
    162. -moz-border-radius-bottomleft: 17px;
    163. -moz-border-radius-topright: 17px;
    164. -webkit-border-top-right-radius: 17px;
    165. -webkit-border-bottom-left-radius: 17px;
    166. }
    167. .sf-shadow ul.sf-shadow-off {
    168. background: transparent;
    169. }

    Und das ist das zugehörige TS das die Ausgabe übernimmt:

    1. MAIN_NAVI = HMENU
    2. MAIN_NAVI {
    3. special = directory
    4. special.value = 39
    5. wrap = <ul class="sf-menu">|</ul>
    6. 1 = TMENU
    7. 1 {
    8. expAll = 1
    9. noBlur = 1
    10. NO = 1
    11. NO.wrapItemAndSub = <li class="m1">|</li> || <li class="m2">|</li> || <li class="m3">|</li> || <li class="m4">|</li>|| <li class="m5">|</li> || <li class="m6">|</li>
    12. CUR = 1
    13. CUR.wrapItemAndSub = <li class="m1">|</li> || <li class="m2">|</li> || <li class="m3">|</li> || <li class="m4">|</li>|| <li class="m5">|</li> || <li class="m6">|</li>
    14. }
    15. 2 = TMENU
    16. 2 {
    17. expAll = 1
    18. noBlur = 1
    19. wrap = <ul>|</ul>
    20. NO.wrapItemAndSub = <li class="secnavi">|</li>
    21. CUR = 1
    22. CUR.wrapItemAndSub = <li class="secnavi">|</li>
    23. ACT = 1
    24. ACT < .CUR
    25. }
    26. 3 < .2
    27. 4 < .3
    28. }

    Es wird beim Mouseover über die Hauptlinks jeweils nur die Hintergurndfarbe die im Bereich ".sf_menu li li" definiert ist angezeigt. Wie bekomme ich es hin, das die Unterpunkte jeweils die Hntergrundfarbe des Hauptpunktes erhalten?

  • etux etux
    Jedi-Meister
    0 x
    360 Beiträge
    13 Hilfreiche Beiträge
    11. 11. 2013, 05:55

    Ich habe Deinen Code nur kurz überflogen – für mehr habe ich gerade die Zeit nicht. Einen Link zu Deiner Site wäre allerdings besser gewesen.

    .m1 sfHover{
    background-color:#006600;
    }
    „sfHover“ dürfte eine per JavaScript gesetzte Klasse sein und sollte nur bei IE < 7 aktiv werden.
    Und Klassennamen beginnen in CSS mit einem Punkt. ;)

    Bei Dir dürfte es eher so funktionieren:

    1. /* alle Browser */
    2. .m1:hover,
    3. .m1 li:hover,
    4. /* IE < 7 */
    5. .m1.sfHover,
    6. .m1 li.sfHover {
    7. background-color: #006600;
    8. }

  • 1