Avatar billede Jakie Juniormester
27. maj 2012 - 17:16 Der er 19 kommentarer og
1 løsning

Inline submenues til horisontal menu?

Hej :)

ER igang med at lave en menu og vil gerne have min submenues til at være inline og ikke bloack, så de står horisontalt ved siden af hinanden og ikke ovenpå hinanden.

KodE:


.menu ul
{margin:0px;
padding:0px;}

.menu ul li
{
display:inline;
height:20px;
float:left;
list-style:none;
margin-left:15px;
padding:10px;
position:relative;
font-size:15px;
}
.menu li a
{color:white;
text-decoration:none;}

.menu li a:hover
{text-decoration:underline;}

.menu li ul
{
margin:0px;
padding:0px;
display:none;
position:absolute;
left:0px;
top:40px;
background-color:rgb(0,63,98);
}

.menu li:hover ul
{
display:inline;
width:160px;
}

.menu li li
{
list-style:none;
display:inline;
width:100%;
}

.menu li li a
{color:#fff;
text-decoration:none;}

.menu li li a:hover
{text-decoration:underline;
}


Nogen der kan hjælpe?

På forhånd tak for hjælpen :)
Avatar billede NielsErikP Mester
27. maj 2012 - 21:23 #1
Hej...

Drejer det sig ikke om at sætte en width på dine List Items<li> .?
Også hvis dine submenu <ul> består af 4 undermenu punkter, så sætte en width på den <ul> plus sætte den til at display: inline; ...

Håber det var brugbart.
Avatar billede Jakie Juniormester
28. maj 2012 - 10:00 #2
nej desværre :)
Avatar billede NielsErikP Mester
28. maj 2012 - 10:07 #3
Hej...

Prøv lige og smid "Html'en til din menu.
Avatar billede NielsErikP Mester
28. maj 2012 - 11:41 #4
Hej...

Prøv om det var noget lignende du havde tænkt dig :



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
    <title>
        Inline elementer-- submenu's
    </title>
   
   
<style type="text/css">
.menu ul {
    margin:0px;
    padding:0px;
}
.menu ul li {
    list-style:none;
    width: 90px;
    height: auto;
    text-align: center;
    line-height: 30px;
    position:relative;
    display: inline-block;
    background-color:rgb(0,63,98);
}
.menu a {
    color:white;
    text-decoration:none;
}
.menu a:hover {
    text-decoration:underline;
}
.menu ul li ul {
    display:none;
}
.menu ul li ul li {
    text-align: left;
    float: left;
}
.menu li:hover ul {
    width: 400px;
    display: block;
}
.menu li li a
{color:#fff;
text-decoration:none;}

.menu li li a:hover
{text-decoration:underline;
}
</style>
</head>

<body>
    <div class="menu">
        <ul>
            <li><a href="#">menu 1</a> </li>
            <li><a href="#">menu 2</a>
                <ul>
                    <li><a href="#">undermenu 1</a> </li>
                    <li><a href="#">undermenu 2</a> </li>
                    <li><a href="#">undermenu 3</a> </li>
                    <li><a href="#">undermenu 4</a> </li>
                </ul>
            </li>
            <li><a href="#">menu 3</a> </li>
        </ul>
    </div>


</body>
</html>


Avatar billede Jakie Juniormester
28. maj 2012 - 16:49 #5
Det er det - DER mangler bare én ting, og det er at undermenuen går helt ud til venstrekant, og ligesom er fast i 950px width :)
Avatar billede NielsErikP Mester
28. maj 2012 - 16:58 #6
Hej...

Forstår ikke helt, hvad du mener!!
Mener du venstre kant af undermenu 1 flugter med venstre kant af menu  1??
Avatar billede Jakie Juniormester
28. maj 2012 - 17:52 #7
ja præcis - hvis det er nummer to url man har pilen over, så går undermenuen ikke helt ud til venstre af overmenuen, kun a tagget for hoveren :)
Avatar billede NielsErikP Mester
28. maj 2012 - 18:13 #8
Hej...

Jeg har prøvet at sætte et par id på dine ListItems <li> ala m1,m2,m3 sådan at der kan refereres til dem. og så har jeg fjernet det mellemrum der var mellem dine menu punkter med <!-- X --> ¨så er det lidt lettere med pixels regning, men du kan jo bare sætte en border-left på dem. Så jeg tænkte om det var noget lignende:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
    <title>
        Inline elementer-- submenu's
    </title>
   
<body>

<div id="position">
    <div class="menu">
        <ul>
            <li id="m1"><a href="#">menu 1</a> </li><!--
        --><li id="m2"><a href="#">menu 2</a>
                <ul>
                    <li><a href="#">undermenu 1</a> </li>
                    <li><a href="#">undermenu 2</a> </li>
                    <li><a href="#">undermenu 3</a> </li>
                    <li><a href="#">undermenu 4</a> </li>
                </ul>
            </li><!--
        --><li id="m3">
<a href="#">menu 3</a>
                <ul >
                    <li><a href="#">undermenu 1</a> </li>
                    <li><a href="#">undermenu 2</a> </li>
                    <li><a href="#">undermenu 3</a> </li>
                    <li><a href="#">undermenu 4</a> </li>
                </ul>
            </li>
        </ul>
    </div>
</div>

</body>
</html>





Css:




<head>

<style type="text/css">
.menu ul {
    margin:0px;
    padding:0px;
}
.menu ul li {
    list-style:none;
    width: 90px;
    height: auto;
    text-align: center;
    line-height: 30px;
    position:relative;
    display: inline-block;
    background-color:rgb(0,63,98);
}
.menu a {
    color:white;
    text-decoration:none;
}
.menu a:hover {
    text-decoration:underline;
}
.menu ul li ul {
    display:none;
}
.menu ul li ul li {
    text-align: left;
    float: left;
}
.menu li:hover ul {
    background-color:rgb(0,63,98);
    height: 30px;
    display: block;
}

.menu li li a
{color:#fff;
text-decoration:none;}

.menu li li a:hover
{text-decoration:underline;
}
#m2:hover ul {
    width: 838px; padding-left trukket fra width'en på 950px
    margin-left: -90px; // bredden på listItems'ene
    padding-left: 112px;
}
#m3:hover ul {
        width: 748px; padding-left trukket fra width'en på 950px
    margin-left: -180px;
    padding-left: 202px; m2's padding-left plusset med bredden på dine listItems
}
[/color]
</style>
</head>



Håber det kan bruges :-)
Avatar billede NielsErikP Mester
28. maj 2012 - 18:16 #9
Hej..

Selvfølgelig:




#m2:hover ul {
    width: 838px; padding-left trukket fra width'en på 950px
    margin-left: -90px; // bredden på listItems'ene
    padding-left: 112px;
}
#m3:hover ul {
        width: 748px; padding-left trukket fra width'en på 950px
    margin-left: -180px;
    padding-left: 202px; m2's padding-left plusset med bredden på dine listItems
}

Avatar billede Jakie Juniormester
28. maj 2012 - 18:20 #10
JA havde også tænkt på det, men det er jo kun en halvløsning, da selve url'sne stadig vil forblive under deres overurl ? :)
Avatar billede Jakie Juniormester
28. maj 2012 - 18:58 #11
Men det er ordnet - tak for hjælpen :)

Du m gerne vedlægge svar :)
Avatar billede NielsErikP Mester
28. maj 2012 - 21:08 #12
Hej..

Godt du fik det ordnet :-)

Svar!!
Avatar billede NielsErikP Mester
28. maj 2012 - 21:52 #13
Hej ..

Tak for point.
Avatar billede Jakie Juniormester
28. maj 2012 - 22:53 #14
Hej.

Desværre fik jeg det ikke rettet alligevel, meget underligt faktisk.

Undermenuen går stadig kun til overurl'en?
Avatar billede Jakie Juniormester
28. maj 2012 - 22:58 #15
Avatar billede NielsErikP Mester
28. maj 2012 - 23:22 #16
Hej...

Så prøver jeg igen, din undermenu får denne totale width på 950 at gå ud fra, så i m2:hover ul har du en margin-left: -90px som er bredden på menu'erne .menu ul li { width: 90px; }
og den er -90 for menu 2, -180 for menu 3 og havde der været en menu 4, havde den været -270.
for m2:hover ul  prøvede jeg mig frem til en padding-left: den er 112px. Så for m2:hover ul er den 90px tillagt.. altså padding-left: 112px+90px = 202px.

Håber det er forklaret godt nok.

Held og lykke.
Avatar billede NielsErikP Mester
28. maj 2012 - 23:25 #17
Hej igen..

fejl ret:

Så for m3:hover ul   er den 90px tillagt..altså padding-left: 112px+90px=202px.
Avatar billede NielsErikP Mester
28. maj 2012 - 23:31 #18
Hej..

Ja.. og så er der jo også Width i m2:hover ul  den er jo lig med den samlede 950px fratrukket den venstre padding.. altså: 950px- 112px = 838px.
For m3:hover ul er den : 950px - 202px = 748px;

Forstår du??
Avatar billede Jakie Juniormester
29. maj 2012 - 14:07 #19
Hej.

Jeg forstår det skam godt, men det gø stadig ikke at undermenuen har den samme plads som den over? :)
Avatar billede NielsErikP Mester
29. maj 2012 - 20:56 #20
Hej..

Nu har jeg kigget linket i #15...
Du kan starte med at rette i menu ul li der kan jeg se at du både bruger float:left og display: inline-block; ide'en med at bruge display: inline-block er at undgå at bruge float:left som jo gør det at det river elementet ud at Html Dokumentets noraale flow... Og Det er altid godt at følge det "Naturlige" i Html dokumenter ,som i andre dele af livet. display: inline-block; gør så at der bliver nogle mellemrum mellem menupunkterne, det er dem du så i Html dokumentet "udkommenterer" ved at bruge </li><!-- --> <li> .

Prøv lige det til en begyndelse.
Virker det stadig ikke, må du prøve at forklare lidt nærmere, hvad det egentligt er du gerne vil have til at ske... For så tror jeg ikke helt jeg forstår, hvad det er du søger.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester