Postawiłem sobie za zadanie utworzenie menu, którego elementy listy, po najechaniu myszką, będą przesuwały się w prawą stronę. Jego próbkę wstawiłem tutaj: http://www.ats2008.cba.pl/xyz/relative2.html.
Oto kod (html + css):
Kod
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Untitled Document</title>
<style type="text/css">
#menu {width:200px; height:auto;
padding:10px;
margin:10px;
float:left;
}
#menu ul, li {margin:0px;
padding:0px;
display:block;
}
#menu ul {
list-style:none;
width:200px;
height:auto;
background-color:#00FFFF;}
#menu ul li {
margin-bottom:2px;}
#menu ul li a:link, #menu ul li a:visited {
padding-left:15px;
color: #ffffff;
text-decoration:none;
display:block;
width:140px;
height:30px;
background-image:url(tlo.gif);
background-repeat:no-repeat;
}
#menu ul li a:hover {
text-decoration:none;
color:#0000CC;
display:block;
width:180px;
height:30px;
padding-left:60px;
background-image:url(tlo2.gif);
background-repeat:no-repeat;
}
#prawy {float:left;
height:200px;
width:auto;
border:1px solid #FF9900;
margin-top:20px;
position: static;
padding:10px;
}
</style>
</head>
<body>
<div id="menu">
<ul>
<li style="position:relative; left:84px;"><a href="">Jeden </a></li>
<li style="position:relative; left:70px;"><a href="">Dwa</a></li>
<li style="position:relative; left:56px;"><a href="">Trzy</a></li>
<li style="position:relative; left:42px;"><a href="">Cztery</a></li>
<li style="position:relative; left:28px;"><a href="">Pięć</a></li>
<li style="position:relative; left:14px;"><a href="">Sześć</a></li>
<li><a href="">Siedem</a></li>
</ul>
</div>
<div id="prawy">Prawy</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Untitled Document</title>
<style type="text/css">
#menu {width:200px; height:auto;
padding:10px;
margin:10px;
float:left;
}
#menu ul, li {margin:0px;
padding:0px;
display:block;
}
#menu ul {
list-style:none;
width:200px;
height:auto;
background-color:#00FFFF;}
#menu ul li {
margin-bottom:2px;}
#menu ul li a:link, #menu ul li a:visited {
padding-left:15px;
color: #ffffff;
text-decoration:none;
display:block;
width:140px;
height:30px;
background-image:url(tlo.gif);
background-repeat:no-repeat;
}
#menu ul li a:hover {
text-decoration:none;
color:#0000CC;
display:block;
width:180px;
height:30px;
padding-left:60px;
background-image:url(tlo2.gif);
background-repeat:no-repeat;
}
#prawy {float:left;
height:200px;
width:auto;
border:1px solid #FF9900;
margin-top:20px;
position: static;
padding:10px;
}
</style>
</head>
<body>
<div id="menu">
<ul>
<li style="position:relative; left:84px;"><a href="">Jeden </a></li>
<li style="position:relative; left:70px;"><a href="">Dwa</a></li>
<li style="position:relative; left:56px;"><a href="">Trzy</a></li>
<li style="position:relative; left:42px;"><a href="">Cztery</a></li>
<li style="position:relative; left:28px;"><a href="">Pięć</a></li>
<li style="position:relative; left:14px;"><a href="">Sześć</a></li>
<li><a href="">Siedem</a></li>
</ul>
</div>
<div id="prawy">Prawy</div>
</body>
</html>
Problem pojawia się oczywiście z IE6, w innych działa wzorowo.
Wyświetlijcie sobie, żeby zobaczyć, o co chodzi.
Div "prawy" przesuwa się w prawo, a cała lista (co widać dzięki tłu) poszerza się. Przy stronie całość się rozjedzie oczywiście.
Użyłem tutaj posiostion: relative, choć wiem, że IE ma problemy z jego obsługą.
Czy macie jakieś pomysły, żeby poprawić kod i zachować podobny efekt schodków?
Z góry dzięki.