ugrás a tartalomhoz

Legördülő menü beállítás

kalikim · 2010. Feb. 18. (Cs), 15.12
Sziasztok!

Meglévő honlapomon szeretném lecserélni a menüsort. Találtam egy menü scriptet, de van vele egy kis problémám. Alapvetően a honlapom 1280x1024-es felbontásra van optimalizálva. Ebben a felbontásban minden rendben van a menüvel. Viszont gondolnom kell azokra is, akik esetleg alacsonyabb felbontásban neteznek, ezért kipróbáltam, hogy 1024x768-ban hogy néz ki. Sajnos kissebb felbontásban megtörik a menü. Az lenne a kérdésem, hogy mit kell átállítanom a CSS fájlban ahhoz, hogy ne törjön meg az tt látható a menü.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Snowman</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
    <style>
        body { font-family:Arial; font-size:16px; font-weight:bold; text-align:center; margin:0px 0px;}
        /* menu */
        #menu{ margin:0px 10px; padding:0px; list-style:none; color:#fff; line-height:30px; display:inline-block; float:left; z-index:1000; position:relative;}
        #menu a { color:#fff; text-decoration:none; }
        #menu > li {background:#000000 none repeat scroll 0 0; cursor:pointer; float:left; position:relative; padding:0px 51px;}
        #menu > li a:hover {color:#B0D730;}
        #menu .logo {background:transparent; padding:0px;}
        /* sub-menus*/
        #menu ul { padding:0px; margin:0px; display:block; display:inline;}
        #menu li ul { position:absolute; left:-20px; top:0px; margin-top:30px; width:150px; line-height:15px; background-color:#000000; /* for IE */ display:none; }
        #menu li:hover ul { display:block;}
        #menu li ul li{ display:block; margin:5px 20px; padding: 5px 0px;  border-top: dotted 2px #606060; list-style-type:none; }
        #menu li ul li:first-child { border-top: none;}
        #menu li ul li a { display:block; color:#0395CC;}
        #menu li ul li a:hover { color:#7FCDFE;}
        /* corners*/
        #menu .corner_inset_left { position:absolute; top:0px; left:-12px;}
        #menu .corner_inset_right { position:absolute; top:0px; left:150px;}
        #menu .last { background:transparent; margin:0px; padding:0px; border:none; position:relative; border:none; height:0px;}
        #menu .corner_left { position:absolute; left:0px; top:0px;}
        #menu .corner_right { position:absolute; left:131px; top:0px;}
        #menu .middle { position:absolute; left:18px; height: 17px; width: 115px; top:0px;}
    </style>
</head>
<body>
        <ul id="menu">
            <li class="logo"><img style="float:left;" alt="" src="menu/menu_left.PNG"/></li>
            <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
                        <a href="#">Snowboard kölcsönzés</a>
                        <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">

                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">

                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">

                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">

                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">

                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">

                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
            </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">

                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">

                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li class="logo"><img style="float:left;" alt="" src="menu/menu_right.PNG"/></li>
             </ul>
</body>
</html>
A választ előre is nagyon köszönöm.
 
1

#menu > li

tiku I tikaszvince · 2010. Feb. 18. (Cs), 15.50
#menu > li padding értékéből végy vissza.
Ebből a HTML szerkezetből az jön le nekem, hogy
a) úgy vadásztad össze ennek a menünek minden elemét, amivel nem is lesz semmi baj, ha érteni is fogod, hogy mi mit csinál, mit miért írtál le (ha nem így lenne, akkor bocsi a feltételezésért, a b. pont lép életbe).

b) táblázatos oldalszerkezeten szocializálódtál (vagy aki az eredetit készítette): első és utolsó li>img elemekből gondolom, a rossz emlékezetű spacer.gif korszakot idézi fel bennem.
Ezzel a módszerrel mindössze annyi a baj, hogy pár éve már létezik az ilyen design elemek elhelyezésére CSS megoldás.

Első lépésben távolítsd el az első és utolsó csak a képet tartalmazó LI elemeket, majd burkold be az #menu ul elemet egy div-be (legyen pl '<div id="menu-cover">)

#menu-cover {
background: url(menu/menu_left.PNG) no-repeat bottom left;
padding-left: 30px;
}
#menu {
background: url(menu/menu_right.PNG) no-repeat bottom right;
padding-right: 30px;
}
Ennek előnye, hogy a HTML szerkezetedet nem kell terhelned felesleges elemekkel.

A CSS3 border-radius tulajdonságát most direkt nem hoztam fel.
2

Valamit elrontottam...

kalikim · 2010. Feb. 18. (Cs), 16.32
Először is nagyon köszönöm a gyors választ. Ha visszaveszek a padding értékből, akkor nem ér végig a lapon. Igazából azt szeretném, hogy mindig 1250 px hosszúságú legyen a menü.
Az az igazság, hogy megcsináltan, amit írtál, de valószínűleg valamit elrontottam, mivel a bal oldali kép nem jelenik meg, csak a jobb oldali. Meg tudnád nézni? Előre is köszönöm.
<style>
        body { font-family:Arial; font-size:16px; font-weight:bold; text-align:center; margin:0px 0px;}
        /* menu */
        #menu{ margin:0px 15px; padding:0px; list-style:none; color:#fff; line-height:30px; display:inline-block; float:left; z-index:1000; position:relative;}
        #menu a { color:#fff; text-decoration:none; }
        #menu > li {background:#000000 none repeat scroll 0 0; cursor:pointer; float:left; position:relative; padding:0px 50px;}
        #menu > li a:hover {color:#B0D730;}
        #menu .logo {background:transparent; padding:0px;}
        /* sub-menus*/
        #menu ul { padding:0px; margin:0px; display:block; display:inline;}
        #menu li ul { position:absolute; left:-10px; top:0px; margin-top:30px; width:150px; line-height:15px; background-color:#000000; /* for IE */ display:none; }
        #menu li:hover ul { display:block;}
        #menu li ul li{ display:block; margin:5px 20px; padding: 5px 0px;  border-top: dotted 2px #606060; list-style-type:none; }
        #menu li ul li:first-child { border-top: none;}
        #menu li ul li a { display:block; color:#0395CC;}
        #menu li ul li a:hover { color:#7FCDFE;}
        /* corners*/
        #menu .corner_inset_left { position:absolute; top:0px; left:-15px;}
        #menu .corner_inset_right { position:absolute; top:0px; left:150px;}
        #menu .last { background:transparent; margin:0px; padding:0px; border:none; position:relative; border:none; height:0px;}
        #menu .corner_left { position:absolute; left:0px; top:0px;}
        #menu .corner_right { position:absolute; left:135px; top:0px;}
        #menu .middle { position:absolute; left:15px; height: 15px; width: 120px; top:0px;}
    
        #menu-cover {  
	    background: url(menu/menu_left.PNG) no-repeat bottom left;  
	    padding-left: 30px;
		}  
		#menu {   
		background: url(menu/menu_right.PNG) no-repeat bottom right;  
		padding-right: 30px;  
		}
		
    </style>
</head>
<body>
        <div id="menu-cover">
        <ul id="menu">
            <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="menu/corner_inset_left.png"/>
                        <a href="#">Snowboard kölcsönzés</a>
                        <img class="corner_inset_right" alt="" src="menu/corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">
                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="menu/corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="menu/corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">
                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="menu/corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="menu/corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">
                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="menu/corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="menu/corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">
                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="menu/corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="menu/corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">
                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>
                        <img class="corner_inset_left" alt="" src="menu/corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="menu/corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">
                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
            </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="menu/corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="menu/corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">
                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             <li><a href="#">Help</a>
                <ul id="help">
                    <li>

                        <img class="corner_inset_left" alt="" src="menu/corner_inset_left.png"/>
                        <a href="#">General help</a>
                        <img class="corner_inset_right" alt="" src="menu/corner_inset_right.png"/>
                    </li>
                    <li><a href="#">Posts</a></li>
                    <li><a href="#">Pages</a></li>
                    <li class="last">
                        <img class="corner_left" alt="" src="menu/corner_left.PNG"/>
                        <img class="middle" alt="" src="menu/dot.PNG"/>
                        <img class="corner_right" alt="" src="menu/corner_right.PNG"/>
                    </li>
                </ul>
             </li>
             </ul>
             </div>
</body>
</html>
3

mi is a cél?

tiku I tikaszvince · 2010. Feb. 18. (Cs), 17.05
tisztáznod kellene először magadban, hogy pontosan mi is a cél. Ha azt szeretnéd, hogy a fekete sáv a menü "mögött", 1250px széles legyen, akkor álltsd be rá width: 1250px; szabályt. Egy elem szélességét nem mindig jó a gyermek elemeinek a szélességével meghatározni. Most ügyesen kiszámoltad hogy 50px jobb/bal paddinggal kiadja a 1250px szélességet. De mi történik, ha lecseréled a "Help" szöveget valós értékekre? Szerintem változni fog a szöveg hossza, és ehhez a változott szöveghosszhoz adódik a 2x50px. Amiből következik, hogy változni fog a teljes szélesség is.

#menu-cover {
  /* a bal alsó kerekített sarok mindig a bal alsó sarokban
    jelenjen meg */
  background: url(menu/menu_left.PNG) no-repeat bottom left;
  /* ne kerülhessen a lekerekítésre semmilyen elem */
  padding-left: 30px;

  /* ez azért kell, hogy doboz magasságát a #menu határozza meg */
  float:left; width:100%;
}    
#menu {
 /* a jobb alsó kerekített sarok mindig a jobb alsó sarokban
    jelenjen meg */
  background: url(menu/menu_right.PNG) no-repeat bottom right;    
  /* ne kerülhessen a lekerekítésre semmilyen elem */
  padding-right: 30px;
} 

A korábban említett felesleges html és spacer.gif dolog az almenükre is vonatkozott.
4

A cél!

kalikim · 2010. Feb. 19. (P), 10.19
Teljesen igazad van, nem határoztam meg, hogy mit is szeretnék csinálni. Az az igazság, hogy amikor megtaláltam ezt a menüt, akkor még azt gondoltam, hogy néhány dolgot módosítok benne és már be is tudom illeszteni a honlapomba, de úgy látom, ez nem is olyan egyszerű mint ahogy azt én elsőre gondoltam. Ezért kérlek, hogy segíts nekem összehozni az elejétől a végéig.
Tehát a cél valami hasonló megjelenés mint eddig, továbbá:
-1280x1024-es felbontásra szeretném optimalizálni a honlapom, azt szeretném, hogy a menü 5-5 pixel-re legyen a két szélétől a lapnak,
-a menüsor magassága 30 pixel legyen, az almenü magasságát nem nagyon tudom (maximum 3 link kerül majd ezekbe),
-ahogy eddig is volt, azt szeretném, hogy a két végén alul le legyen kerekítve, nem tudom, hogy megoldható-e ezekkel a scriptekkel: moz-border-radius webkit-border-radius,
-a menüpontok alá kerüljenek az almenüpontok, ha lehetséges középre igazítva, valahogy így.

Előre is köszönöm a segítséget!