Nice menu egyéni css

pante képe

Sziasztok!

Az lenne a problémám, hogy Nice menu-t próbálom dizájnolni, de sajnos az egész szétesik, szétcsúszik.

  1. /*
  2.   This is the default layout template for nice menus, and will provide
  3.   a starting point for the look of your menus. To customize, it's
  4.   recommended to create a custom CSS file using this file as a template,
  5.   then configure the module to use your custom CSS file
  6.   (this is done in the global settings tab of the theme administration.)
  7.  
  8.   See README.txt and the handbook page (http://drupal.org/node/185543)
  9.   for more information on using the CSS.
  10. */
  11.  
  12. /******************************
  13.  Global CSS for ALL menu types
  14. ******************************/
  15.  
  16. ul.nice-menu,
  17. ul.nice-menu ul {
  18. list-style: none;
  19. padding-top: 10px;
  20. margin: 0;
  21. border-top: 0px solid brown;
  22. }
  23.  
  24. ul.nice-menu,
  25. ul.nice-menu ul ul {
  26. list-style: none;
  27. padding-top: 0px;
  28. margin: 0;
  29. border-top: 0px solid brown;
  30. }
  31.  
  32. ul.nice-menu li {
  33. border: 0px solid brown;
  34. border-top: 0px;
  35. float: left; /* LTR */
  36. background-color: green;
  37. }
  38.  
  39. ul.nice-menu a {
  40. padding: 0.3em 5px 0.3em 5px;
  41. }
  42.  
  43. ul.nice-menu ul {
  44. top: 1.8em;
  45. left: 0px; /* LTR */
  46. border: 0;
  47. border-top: 0px solid brown;
  48. margin-right: 0; /* LTR */
  49. }
  50.  
  51. ul.nice-menu ul li {
  52. width: 20em;
  53. }
  54.  
  55. /******************************
  56.  VERTICAL (left/right) menus
  57. ******************************/
  58.  
  59. /* This is the default width of all vertical menus. */
  60. ul.nice-menu-right, ul.nice-menu-left,
  61. ul.nice-menu-right li, ul.nice-menu-left li {
  62. width: 20em;
  63. }
  64.  
  65. /* VERTICAL menus where submenus pop RIGHT (default). */
  66. ul.nice-menu-right ul {
  67. width: 20em;
  68. left: 20em;
  69. top: 20px;
  70. }
  71.  
  72. ul.nice-menu-right ul ul {
  73. width: 20em;
  74. left: 20em;
  75. top: 20px;
  76. }
  77.  
  78. ul.nice-menu-right li.menuparent,
  79. ul.nice-menu-right li li.menuparent {
  80. background: green url(arrow-right.png) right center no-repeat;
  81. }
  82.  
  83. ul.nice-menu-right li.menuparent:hover,
  84. ul.nice-menu-right li li.menuparent:hover {
  85. background: brown url(arrow-right.png) right center no-repeat;
  86. }
  87.  
  88. /* VERTICAL menus where submenus pop LEFT. */
  89. ul.nice-menu-left li ul {
  90. width: 20em;
  91. left: -12.65em;
  92. top: 20px;
  93. }
  94.  
  95. ul.nice-menu-left li ul li ul {
  96. width: 20em;
  97. left: -12.65em;
  98. top: 20px;
  99. }
  100.  
  101. ul.nice-menu-left li.menuparent,
  102. ul.nice-menu-left li li.menuparent {
  103. background: brown url(arrow-left.png) left center no-repeat;
  104. }
  105.  
  106. ul.nice-menu-left li.menuparent:hover,
  107. ul.nice-menu-left li li.menuparent:hover {
  108. background: green url(arrow-left.png) left center no-repeat;
  109. }
  110.  
  111. ul.nice-menu-left a, ul.nice-menu-left ul a {
  112. padding-left: 14px;
  113. }
  114.  
  115. /******************************
  116.  HORIZONTAL (down) menus
  117. ******************************/
  118.  
  119. ul.nice-menu-down {
  120. float: left; /* LTR */
  121. border: 0;
  122. }
  123.  
  124. ul.nice-menu-down li {
  125. border-top: 0px solid brown;
  126. }
  127.  
  128. ul.nice-menu-down li li {
  129. border-top: 0;
  130. }
  131.  
  132. ul.nice-menu-down ul {
  133. left: 0; /* LTR */
  134. }
  135.  
  136. ul.nice-menu-down ul li {
  137. clear: both;
  138. }
  139.  
  140. ul.nice-menu-down li ul li ul {
  141. left: 20em; /* LTR */
  142. top: 0px;
  143. }
  144.  
  145. ul.nice-menu-down .menuparent a {
  146. padding-right: 15px; /* LTR */
  147. }
  148.  
  149. ul.nice-menu-down li.menuparent {
  150. background: green url(arrow-down.png) right center no-repeat; /* LTR */
  151. }
  152.  
  153. ul.nice-menu-down li.menuparent:hover {
  154. background: brown url(arrow-down.png) right center no-repeat; /* LTR */
  155. }
  156.  
  157. ul.nice-menu-down li li.menuparent {
  158. background: green url(arrow-right.png) right center no-repeat; /* LTR */
  159. }
  160.  
  161. ul.nice-menu-down li li.menuparent:hover {
  162. background: brown url(arrow-right.png) right center no-repeat; /* LTR */
  163. }

Sajnos nem minden menüpont lesz barna hoveres, csakis amelyiknek van almenüje, nem tudja az egész menüt center-be rakni hanem bal széléről kezdi, illetve mindig az első menüpontok jobb széléből kiesik 1px-nyi rész.

Nem tudom hova kellett volna nyitnom ezt a témát, mert css miatt inkább programozás, de mégiscsak a Nice menu modulhoz kötődik a probléma, sminkek közé nem akartam, mert modulról van szó annak ellenére, hogy kinézetét szeretném javítani.
Elnézést, ha mégsem jó helyre lett nyitva a téma.

Köszönöm előre is a segítségeteket!

Drupal verzió: 
Robert Petras képe

Ha lenne egy élő fejlesztői (és nem lokális) weblap cím, amin láthatnánk a bugos navigációs menüt, akkor sokkal könnyebben tudnánk segíteni.

Csak magamból indulok ki ha Drupal designról van szó: Ha nem látom a kihívásra késztető ill. segítségnyújtásra szoruló weblapot, akkor minek vesződjek a beillesztett kód áttanulmányozásával? Számomra legalább annyira jól esne egy kolléga munkájára rápillantanom, mint ahogy a kódjára.

Ha megadod a weblap fejlesztői linkjét akkor szivesen rápislantok, nem lehet olyan nagy a baj a leírásod alapján.

2
0
Robert Petras képe

Mivel voltál olyan kedves és privát levélben elküldted a weblap elérhetőségét, sikerült egy rövid pillantást vetni a Nice menu modul által generált html szerkezetre és stílusra. Gyakorlatilag minden "li" felsorálás és minden "a" hivatkozás kap egy-egy stílust, azonosítót, stb. ezért úgy gondoltam, hogy én inkább nem piszkálok bele a munkádba.

Ettől föggetlenül ha érdekel, akkor szivesen megmutatom, hogy miképp lehet külső modul nélkül pusztán stíluslappal megoldani a többszintű menükezelést Drupal alatt.

Pusztán CSS segítségével a :hover állapotot felhasználva el lehet érni a kívánt hatást. Egyébként ez széleskörben elterjedt. A mobil tapogatós eszközökön is lehet használni, mert rendben megjelenik az almenü a tapasztalataim szerint.

Készítettem a számodra egy minta alsminket is a Stark téma alapján. Ezt felhasználva + egy kis módosítással akár 2-3 kattintással el lehet érni, hogy működjön az általad kíván menü és stílus.

TESZTKÖRNYEZETBEN HASZNÁLD ÉS PRÓBÁLD KI VAGY MÓDOSÍTSD!

A koncepció a következő:

  1. Installáld a Stark Alsminket amit belinkeltem a hozzászólásomban. Előfeltétel, hogy a Stark engedélyezve legyen a "Megjelenés" beállítási oldalon.
  2. A Stark Alsmink beállításánál kapcsold ki a "Főmenü" és "Másodlagos menü" opciót (sokat lehetne arról beszélgetni, hogy van-e valami értelme ennek funkciónak)
  3. A "Felépítés" » "Blokkok" beállításnál a Főmenü blokkot állítsd a Fejléc régióba (Header).
  4. A Főmenü blokk címének add meg "<none>" címkét, ezzel eltünteted a blokk címét, amire nincs szükségünk
  5. A menüpontokat szerkesztve, ragadd meg és húzd az egyik almenüt a szülő menüpont alá és gyakorlatilag ezzel kész is van a többlépcsős navigációs menü. Csak egy fontos dologra kell figyelni.
  6. A Címlap » Adminisztráció » Felépítés » Menük oldalt használva arra ügyelj, hogy egy egy menüpont aminek almenüt szeretnél adni úgy legyen beállítva ( » Hivatkozások listázása » Szerkesztés ), hogy a "Nyitott állapotban megjelenítve" kapcsoló mindig aktív állapotban legyen, így nyitott állapotban a menüpont gyermekei mindig látszani fognak.

Mindez amit fent írtam nem hekkelés vagy külső modul felhasználása, ilyen a Drupal 7 rendszer működése. A fenti menüpont beállítást manuálisan végezd el ott ahol kell, ne parázz, mert ezt csak egyszer kell megtenni, hiszen a menüszerkezet ritkán változik.

FELHASZNÁLÁSI TIPP:

  • A Stark Alsmink "style.css" kódját áttanulmányozva bátran felhasználhatod azt a weblapod elkészítéséhez.
  • A zöld és barna színeket az önkormányzati honlapod alapján használtam fel.
  • Egy kis CSS3-mal meg tudod úgy fűszerezni a menüt, hogy az pl. nyilakat tartalmazzon, az aktív állapot külön színt kapjon, elválasztó vonalakat, fentről-lefelé vagy balról-jobbra animálódjon, stb. Mindehhez ma már JavaScript sem kell csak alapos CSS ismeret.

Egy élő weblapot is tudok mutatni, ahol ezt a módszer alkalmaztam (igaz, hogy az ott látható kód nem valami mestermunka):

Remélem, hogy tudtam segíteni:

FORRÁSANYAG:

Stark Alsmink "starkalsmink.info" fájl:

  1. name = Stark Alsmink
  2. description = Ez egy alsmink gyakorlati célból létrehozva. További hasznos infó magyar nyelven: http://drupal.hu/node/15822
  3. package = Core
  4. version = 1.0
  5. core = 7.x
  6. engine = phptemplate
  7. base theme = stark
  8.  
  9. stylesheets[all][] = style.css

Stark Alsmink "style.css" fájl:

  1. /**
  2.  * sötétzöld: #3C8514;
  3.  * barna: #a52a2a;
  4.  */
  5.  
  6.  
  7. /* ÁLTALÁNOS
  8. ------------------------------------------------------------------------------*/
  9. body {
  10. background: #eee;
  11. }
  12.  
  13. #page {
  14. background: #fff;
  15. margin: 30px auto;
  16. width: 960px;
  17. }
  18.  
  19. /* MENU
  20. ------------------------------------------------------------------------------*/
  21. #header ul.menu {
  22. display: block;
  23. list-style-position: inside;
  24. margin: 0;
  25. padding: 0;
  26. position: relative;
  27. z-index: 100;
  28. }
  29.  
  30. /* Az elso szint menupontjai horizontálisan balrol jobbra tart */
  31. #header ul.menu li {
  32. display: block;
  33. float: left;
  34. margin: 0;
  35. padding: 0;
  36. position: relative;
  37. }
  38.  
  39. /* A masodik, harmadik es negyedik szint vertikalisan fentrol lefele tart */
  40. #header ul.menu li ul > li {
  41. float: none;
  42. }
  43.  
  44. /* Eltuntetjuk a nem kivant menuszinteket az inaktiv allapotvan */
  45. #header ul.menu li.expanded ul.menu,
  46. #header ul.menu li.expanded ul.menu li.expanded ul.menu,
  47. #header ul.menu li.expanded ul.menu li.expanded ul.menu li.expanded ul.menu {
  48. display: none;
  49. }
  50.  
  51. /* Menupont szine */
  52. #header ul.menu a {
  53. background: #3C8514;
  54. color: #fff;
  55. display: block;
  56. line-height: 1;
  57. margin: 0;
  58. padding: 10px;
  59. text-decoration: none;
  60. }
  61.  
  62. #header ul.menu a:hover {
  63. background: #a52a2a;
  64. }
  65.  
  66. /* 2. szint
  67. ------------------------------------------------------------------------------*/
  68. #header ul.menu li.expanded:hover ul.menu {
  69. display: block;
  70. left: 0;
  71. position: absolute;
  72. top: auto; /* FONTOS!!! */
  73. width: 240px;
  74. }
  75.  
  76. /* 3. szint
  77. ------------------------------------------------------------------------------*/
  78. #header ul.menu li.expanded ul.menu li.expanded:hover ul {
  79. display: block;
  80. left: 240px;
  81. position: absolute;
  82. top: 0;
  83. width: 240px;
  84. }
  85.  
  86. /* 4. szint
  87. ------------------------------------------------------------------------------*/
  88. #header ul.menu li.expanded ul.menu li.expanded ul.menu li.expanded:hover ul.menu {
  89. display: block;
  90. left: 240px;
  91. position: absolute;
  92. top: 0;
  93. width: 240px;
  94. }
3
0
pante képe

Hála a részletes leírásodnak, meg tudtam oldani a problémát, így már nem csúszik el a menüm. Ehhez szükség volt a rendszer újratelepítésére (több helyen belenyúltam a core-ba, nagyon nem kellett volna...) illetve a Mix and Match nevű sminkem Skinr modul kiegészítéssel valamiért nem szerette a Nice menu-t, így utóbbit cseréltem Superfish-re.
A cserének köszönhetően nem esett már szét a menüm és a Superfish-hez is tudok rendelni külső css-t.
Annyit szeretnék még kérdezni, hogy lehet az egész menüt a block közepére igazítani? Néztem a dlsz.hu-t, ott is alapvetően balra igazított (default).

0
0